Issue Details (XML | Word | Printable)

Key: NET-224
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Alexander
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Commons Net

NullPointerException if in ftp-directory are files with creation date Feb 29 current year (Problem of leap year)

Created: 26/Jun/08 09:47 AM   Updated: 01/Dec/08 11:02 AM
Return to search
Component/s: None
Affects Version/s: 1.4
Fix Version/s: 2.0, 1.5

Time Tracking:
Not Specified

Environment: Java 1.5/1.6
Issue Links:
Duplicate
 

Resolution Date: 01/Dec/08 11:02 AM


 Description  « Hide
1) Ant code:

<ftp action="get"
server="${ftp.server}"
userid="${ftp.user}"
password="${ftp.password}"
remotedir="${ftp.dir}"
verbose="yes"
depends="yes">
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</ftp>

NullPointerException if in ${ftp.dir} are files with creation date Feb 29 current year

2) Caused:
Incorrect parse creation date Feb 29 current year

For java 1.5/1.6:
Example 1:
SimpleDateFormat sdf = new SimpleDateFormat("MMM d yy");
sdf.setLenient(false);
System.out.println("date=" + sdf.parse("Feb 29 12:14"));

Result:
date=null;

If doesn't use command sdf.setLenient(false) then result: date = Sun Mar 01 12:14:00 EET 1970

For java 1.4:
Result always "date=Sun Mar 01 12:14:00 EET 1970", because for java 1.4 doesn't throw error NullPointerException

3) Sources:

File: commons-net-1.4.1\src\java\org\apache\commons\net\ftp\parser\FTPTimestampParserImpl.java

Caused in function (line 225: this.recentDateFormat.setLenient(false); ):

public void configure(FTPClientConfig config) {
....

String recentFormatString = config.getRecentDateFormatStr();
if (recentFormatString == null) { this.recentDateFormat = null; } else { this.recentDateFormat = new SimpleDateFormat(recentFormatString, dfs); this.recentDateFormat.setLenient(false); }
....
}

4) StackTrace:

java.lang.NullPointerException
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:115)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: java.lang.NullPointerException
at org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.checkRemoteSensitivity(FTP.java:583)
at org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.forceRemoteSensitivityCheck(FTP.java:552)
at org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.scan(FTP.java:231)
at org.apache.tools.ant.taskdefs.optional.net.FTP.transferFiles(FTP.java:1570)
at org.apache.tools.ant.taskdefs.optional.net.FTP.transferFiles(FTP.java:1683)
at org.apache.tools.ant.taskdefs.optional.net.FTP.execute(FTP.java:2373)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
... 11 more
— Nested Exception —
java.lang.NullPointerException
at org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.checkRemoteSensitivity(FTP.java:583)
at org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.forceRemoteSensitivityCheck(FTP.java:552)
at org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.scan(FTP.java:231)
at org.apache.tools.ant.taskdefs.optional.net.FTP.transferFiles(FTP.java:1570)
at org.apache.tools.ant.taskdefs.optional.net.FTP.transferFiles(FTP.java:1683)
at org.apache.tools.ant.taskdefs.optional.net.FTP.execute(FTP.java:2373)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
There are no subversion log entries for this issue yet.