Uploaded image for project: 'Commons Net'
  1. Commons Net
  2. NET-224

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

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 1.5, 2.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      Java 1.5/1.6

      Description

      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)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                alexandr Alexander
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: