Breaking Changeset: 4802647: Throw required NPEs from removeAll()/retainAll() (original) (raw)
Ali Ebrahimi ali.ebrahimi1781 at gmail.com
Tue Jun 4 09:14:41 UTC 2013
- Previous message: hg: jdk8/tl/jdk: 8005698: Handle Frequent HashMap Collisions with Balanced Trees
- Next message: Breaking Changeset: 4802647: Throw required NPEs from removeAll()/retainAll()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
when building openjfx8 with jdk8b92 i encountered this error :
Total time: 5.313 secs :buildSrc:clean :buildSrc:generateGrammarSource error(10): internal error: Can't get property indirectDelegates using method ge t/isIndirectDelegates from org.antlr.tool.Grammar instance : java.lang.NullPointerException java.util.Objects.requireNonNull(Objects.java:203) java.util.ArrayList.removeAll(ArrayList.java:674) org.antlr.tool.CompositeGrammar.getIndirectDelegates(CompositeGrammar.java:222) org.antlr.tool.Grammar.getIndirectDelegates(Grammar.java:2620) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43) java.lang.reflect.Method.invoke(Method.java:491) org.antlr.stringtemplate.language.ASTExpr.invokeMethod(ASTExpr.java:563) org.antlr.stringtemplate.language.ASTExpr.rawGetObjectProperty(ASTExpr.java:514)
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:416) org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.java :351) org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:136)
org.antlr.stringtemplate.language.ActionEvaluator.templateApplication(ActionEval uator.java:216) org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:126)
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:84 ) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:148) org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:700) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:722) org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:659) org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86 ) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:148) org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:700) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:722) org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:659) org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86 ) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:148) org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:700) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:722) org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:659) org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86 ) org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:148) org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:700) org.antlr.codegen.CodeGenerator.write(CodeGenerator.java:1278) org.antlr.codegen.Target.genRecognizerFile(Target.java:94) org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:463) org.antlr.Tool.generateRecognizer(Tool.java:607) org.antlr.Tool.process(Tool.java:429) org.antlr.Tool.main(Tool.java:91) :buildSrc:generateGrammarSource FAILED
the cause of this error is this new changeset:
4802647: Throw required NPEs from removeAll()/retainAll()
current code assume that collection.removeAll(null) doesn't do anything. but with this changeset produces NullPointerException that doesn't handled.
following is part of source code org/antlr/tool/CompositeGrammar.java (see******** )
217 /** Get delegates below direct delegates of g / 218 public List getIndirectDelegates(Grammar g) { 219 List direct = getDirectDelegates(g); 220 List delegates = getDelegates(g); 221 delegates.removeAll(direct);******* 222 return delegates; 223 } 224 225 /** Return list of delegate grammars from root down to g. 226 * Order is root, ..., g.parent. (g not included). 227 / 228 public List getDelegators(Grammar g) { 229 if ( g==delegateGrammarTreeRoot.grammar ) { 230 return null;********* 231 } 232 List grammars = new ArrayList(); 233 CompositeGrammarTree t = delegateGrammarTreeRoot.findNode(g); 234 // walk backwards to root, collecting grammars 235 CompositeGrammarTree p = t.parent; 236 while ( p!=null ) { 237 grammars.add(0, p.grammar); // add to head so in order later 238 p = p.parent; 239 } 240 return grammars; 241 }
So this changeset at least breaks 'antlr' third-party library and any apps depends on.
- Previous message: hg: jdk8/tl/jdk: 8005698: Handle Frequent HashMap Collisions with Balanced Trees
- Next message: Breaking Changeset: 4802647: Throw required NPEs from removeAll()/retainAll()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]