论坛首页 Java企业应用论坛

FreeMarker代码质量真的很差

浏览 19618 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-14  
这里说的版本是:FreeMarker 2.3.10 (April 20, 2007)

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,所有代码都写很严谨,也没有任何无用代码。
很无语...
   发表时间:2007-08-14  
以前用过它,后来觉着不爽,自己整了一个
   弄了个StringTemplate 模板
  想怎么搞都可以
0 请登录后投票
   发表时间:2007-08-15  
晕~ 希望以后版本有改进
1 请登录后投票
   发表时间:2007-08-15  
冷。。。本来还想用下。。。实在。。。是太差了。。。
1 请登录后投票
   发表时间:2007-08-15  
欣赏楼主刻苦钻研的精神!不过只在这里说说未必有助于FreeMarker的完善,建议你把这个问题反映给FreeMarker的开发小组或论坛
0 请登录后投票
   发表时间:2007-08-15  
估计FreeMarker也是几个初哥在开发
1 请登录后投票
   发表时间:2007-08-15  
用起来感觉还是挺好的。毕竟是免费开源的东西,好像也没有基金的支持。
0 请登录后投票
   发表时间:2007-08-15  
更可怜的是Freemarker 至今仍未解决UTF-8 bom的问题
0 请登录后投票
   发表时间:2007-08-15  
这个版本不是general availability.
楼主可以mail to author.
0 请登录后投票
   发表时间:2007-08-15  
用的感觉还不错,还没遇到什么大的问题,没想到还会有如此多的BUG。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics