1)现象描述:
使用以下命令获取文件时会报java.lang.nullpointerException
<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>

2)问题原因追溯:
${ftp.dir} are files with creation date Feb 29 current year
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
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); }
....
}

3)解决方法:
把ant的lib 下common-net.1.4.jar包替换为2.0的包。

https://issues.apache.org/jira/browse/NET-224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs

ant ftp get nullpointerException相关推荐

  1. ant使用ftp上传数据时配置的一个报错问题

    error:ANT FTP upload file: 425 Unable to build data connection: Connection timed out 以下是xml原配置: < ...

  2. Gradle之FTP文件下载

    Gradle之FTP文件下载 1.背景 项目上需要使用本地web,所以我们直接将web直接放入assets资源文件夹下.但是随着开发进行web包越来越大:所以我们想着从版本库里面去掉web将其忽略掉, ...

  3. Eclipse插件Ant里运用ftp遇到的问题

    为什么80%的码农都做不了架构师?>>>    用Eclipse4.2+Ant1.8.4,在build.xml文件中使用ftp将包发到远程服务器上时总是出错,出错信息为: " ...

  4. ANT中的Telnet和FTP

    先看代码: <project name="project" basedir="." default="ftp"> <tar ...

  5. linux java 构建工具有哪些,Linux ant --强大的Java开发构建工具

    用途说明 ant严格说来,ant其实并非原生的Linux命令,但它是一个使用广泛.功能强大的跨平台构建工具程序,尤其是进行Java开发时,许多开源的Java项目都使用ant作为构建工具.ant命令一般 ...

  6. 使用 Ant 自动生成项目构建版本

    引言 对 于多版本项目,要提供新版本来跟上新功能或缺陷报告增加的速度,并同时仍然保持可接受的质量水平,可能是一项不小的挑战.构建自动化可确保准确性和消除人 为错误的可能性,从而部分地解决此问题.自动化 ...

  7. Java程序结合Aapche Ant进行远程服务器文件备份

    网上流传了好多关于Java调用Ant API的文章,也有使用Ant进行远程服务器文件的下载,本地文件上传到服务器.可惜google了好久也没有找到撇开build文件来进行ant的使用,多半是对ant的 ...

  8. 从ftp获取文件并生成压缩包

    之前写的有bug啊 每人说.. 依赖 <dependency><groupId>commons-net</groupId><artifactId>com ...

  9. 从源码角度深入分析ant

    Ant的基本概念 首先是ant的基本概念:Project,Target,Tasks,Properties,Paths 1.Project <project> build.xml文件最顶层的 ...

最新文章

  1. SLAM从0到1——状态估计之最小二乘问题解法:最速下降法、牛顿法、高斯牛顿法、LM法...
  2. Validform 学习笔记---基础知识整理
  3. SAP CRM WebClient UI Context node expose条件
  4. 微软2013年校园实习生招聘笔试题及答案
  5. linux 喂狗时间,狗狗正确喂食时间表,喂狗最佳时间指南
  6. shell 中${b-2} and ${b:-2}
  7. 双系统linux解压后怎么安装,先装linux再装windows双系统
  8. 信息林-青岛分类信息网.net源码
  9. java序列化和反序列化练习
  10. 【Arc GIS 零基础教学】常用的环境科学与工程专业英语词汇分享
  11. 《辛雷学习方法》读书笔记——第三章 身体
  12. 2014春晚小品《扶不扶》台词集锦
  13. StartActivity的2种用法
  14. LCD 液晶显示器 ---------- LTDC 控制器
  15. 12306订票候补是个坑_重磅!12306候补购票正式上线,实测你可能连排队的机会都没有!...
  16. Linux无桌面环境下,实现USB的自动挂载/卸载
  17. Linux查看并对外开放端口
  18. 第三方软件测试机构如何对软件进行安全性测试?
  19. 酷比魔方iwork1x 使用体验
  20. 银行承兑汇票贴现费率是多少

热门文章

  1. java什么是反射 代码说明_java编程中,常提到的反射代码指的是什么?
  2. npm publish npm resource busy or locked 4082 发布出错解决方案
  3. CentOS 7安装配置vsftpd做FTP服务
  4. 【IT】Asp.Net MVC
  5. “升级 iOS 最新系统后,我弃用了 iPhone!”
  6. 图文分析:如何利用Google的protobuf,来思考、设计、实现自己的RPC框架
  7. “火星人”马斯克推论:世界或是被编码而成,上帝可能是个程序员!
  8. 游戏界的扛把子、3D 游戏之父约翰•卡马克的传奇人生
  9. 拼多多就知乎不当评论致歉;谷歌员工成立首个工会;MySQL 迁移工具新版发布
  10. 管理大型共享数据库,做到这几点不再头疼!