freemaker存在代码错误

freemarker.core.TemplateElement 第101行:

Java代码 复制代码
  1. public TemplateSequenceModel getChildNodes() {   
  2.     if (nestedElements != null) {   
  3.         return new SimpleSequence(nestedElements);   
  4.     }   
  5.     SimpleSequence result = null;   
  6.     if (nestedBlock != null) {   
  7.         result.add(nestedBlock);   
  8.     }    
  9.     return result;   
  10. }  
    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行:

Java代码 复制代码
  1. public void printStackTrace(PrintStream ps) {   
  2.     String msg = this.getMessage();   
  3.     ps.print("Encountered stop instruction");   
  4.     if (msg != null & !msg.equals("")) {   
  5.         ps.println("/nCause given: " + msg);   
  6.     } else ps.println();   
  7.     super.printStackTrace(ps);   
  8. }  
    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行

Java代码 复制代码
  1. ObjectWrapper DEFAULT_WRAPPER = DefaultObjectWrapper.instance;  
ObjectWrapper DEFAULT_WRAPPER = DefaultObjectWrapper.instance;


freemarker.template.DefaultObjectWrapper 第70行

Java代码 复制代码
  1. static final DefaultObjectWrapper instance = new DefaultObjectWrapper();  
static final DefaultObjectWrapper instance = new DefaultObjectWrapper();


其中,DefaultObjectWrapper 是 ObjectWrapper 的子类。
他居然在父类静态块初始化过程中调用子类初始化方法,
晕倒,子类怎么能在父类之前实例化,这只会使构造失败,经常出一些莫明其妙的错误。

太多了,诸如此类问题用FindBugs就能查出几十个,
还有N多没用到的变量,方法,内部匿名类,到处乱七八糟,
不知道作者怎么对得起这么多用户。

同样的方法检查Spring和Hibernate,所有代码都写很严谨,也没有任何无用代码。
很无语...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值