[
https://issues.apache.org/jira/browse/NET-225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sebb resolved NET-225.
----------------------
Resolution: Fixed
Fix Version/s: 2.0
1.5
> FTPFileEntryParserImpl.preParse() doesn't remove unparsable entries at the
> end of the file list
> -----------------------------------------------------------------------------------------------
>
> Key: NET-225
> URL: https://issues.apache.org/jira/browse/NET-225
> Project: Commons Net
> Issue Type: Bug
> Affects Versions: 1.4, 2.1
> Environment: commons-net-1.4.1; Windows XP/2003; JRE 1.5.013-b05; Ant
> 1.7.0; Embedded FTP server UNIX type L8;
> Reporter: Sergey Shcherbakov
> Fix For: 1.5, 2.0
>
>
> I am using Ant 1.7.0 task to get files from our Embedded FTP server:
> <ftp server="${xxxximage.master.test.xxxx.ip}"
> port="${xxxximage.master.test.xxxx.port}"
> userid="${xxxximage.master.test.xxxx.user}"
> password="${xxxximage.master.test.xxxx.password}"
> remotedir="${xxxximage.master.test.xxxx.dir}"
> retriesAllowed="3"
> action="get"
> skipFailedTransfers="true"
> systemTypeKey="UNIX"
> >
> <fileset dir="${xxxximage.master.dist.test.nunit.dir}">
> <include name="${xxxximage.master.test.xxxx.results}"/>
> </fileset>
> </ftp>
> Ant task crashes with the following error message:
> java.lang.NullPointerException
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
> a: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(DefaultExe
> cutor.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.ch
> eckRemoteSensitivity(FTP.java:583)
> at
> org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.fo
> rceRemoteSensitivityCheck(FTP.java:552)
> at
> org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.sc
> an(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.GeneratedMethodAccessor2.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
> a:105)
> ... 11 more
> --- Nested Exception ---
> java.lang.NullPointerException
> at
> org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.ch
> eckRemoteSensitivity(FTP.java:583)
> at
> org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.fo
> rceRemoteSensitivityCheck(FTP.java:552)
> at
> org.apache.tools.ant.taskdefs.optional.net.FTP$FTPDirectoryScanner.sc
> an(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.GeneratedMethodAccessor2.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
> a: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(DefaultExe
> cutor.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)
> The problem is in the Commons-Net library used internally by the Ant task.
> Our FTP server returns empty string at the end of the requested folder file
> list that causes the org.apache.commons.net.ftp.FtpClient.listFiles() method
> to return FTPFile array with null elements at the end, which in turn causes
> NullPointer exception in the
> org.apache.tools.ant.taskdefs.optional.net.FTP.checkRemoteSensivity() method.
> The problem occurs because the
> org.apache.commons.net.ftp.FTPFileEntryParserImpl.preParse() methods designed
> to wipe off non-valid lines from the file list response doesn't remove
> trailing empty lines from response inspite of its Javadoc description: "This
> default implementation removes entries that do not parse as files."
> The issue can be fixed by removing
> else {
> break;
> }
> clause from the method's implementation.
> I have checked the HEAD version of the FTPFileEntryParserImpl.java file. The
> else{ break; } clause still remains there and I can reproduce issue with the
> HEAD version of the commons.net.ftp, thus I am assuming that the issue occurs
> in the commons-net 1.4.1 as well as in the latest development version.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.