精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-14
freemarker.core.TemplateElement 第101行: public TemplateSequenceModel getChildNodes() { if (nestedElements != null) { return new SimpleSequence(nestedElements); } SimpleSequence result = null; if (nestedBlock != null) { result.add(nestedBlock); } return result; } 居然在SimpleSequence result = null;后直接调用result.add(nestedBlock); 这行代码永远空指针异常! freemarker.core.StopException 第84行: public void printStackTrace(PrintStream ps) { String msg = this.getMessage(); ps.print("Encountered stop instruction"); if (msg != null & !msg.equals("")) { ps.println("\nCause given: " + msg); } else ps.println(); super.printStackTrace(ps); } if (msg != null & !msg.equals("")) 没有用 短路与“&&” 而是 “&”, 当msg == null时, msg.equals("")总是会被调用,总是空指针异常! else语句一点作用都没有。 freemarker.template.ObjectWrapper 第77行 ObjectWrapper DEFAULT_WRAPPER = DefaultObjectWrapper.instance; freemarker.template.DefaultObjectWrapper 第70行 static final DefaultObjectWrapper instance = new DefaultObjectWrapper(); 其中,DefaultObjectWrapper 是 ObjectWrapper 的子类。 他居然在父类静态块初始化过程中调用子类初始化方法, 晕倒,子类怎么能在父类之前实例化,这只会使构造失败,经常出一些莫明其妙的错误。 太多了,诸如此类问题用FindBugs就能查出几十个, 还有N多没用到的变量,方法,内部匿名类,到处乱七八糟, 不知道作者怎么对得起这么多用户。 同样的方法检查Spring和Hibernate,所有代码都写很严谨,也没有任何无用代码。 很无语... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-14
以前用过它,后来觉着不爽,自己整了一个
弄了个StringTemplate 模板 想怎么搞都可以 |
|
返回顶楼 | |
发表时间:2007-08-15
晕~ 希望以后版本有改进
|
|
返回顶楼 | |
发表时间:2007-08-15
冷。。。本来还想用下。。。实在。。。是太差了。。。
|
|
返回顶楼 | |
发表时间:2007-08-15
欣赏楼主刻苦钻研的精神!不过只在这里说说未必有助于FreeMarker的完善,建议你把这个问题反映给FreeMarker的开发小组或论坛
|
|
返回顶楼 | |
发表时间:2007-08-15
估计FreeMarker也是几个初哥在开发
|
|
返回顶楼 | |
发表时间:2007-08-15
用起来感觉还是挺好的。毕竟是免费开源的东西,好像也没有基金的支持。
|
|
返回顶楼 | |
发表时间:2007-08-15
更可怜的是Freemarker 至今仍未解决UTF-8 bom的问题
|
|
返回顶楼 | |
发表时间:2007-08-15
这个版本不是general availability.
楼主可以mail to author. |
|
返回顶楼 | |
发表时间:2007-08-15
用的感觉还不错,还没遇到什么大的问题,没想到还会有如此多的BUG。
|
|
返回顶楼 | |