Errors running BugPicker
Issue #124
resolved
Running the BugPicker's Console class on OPAL, I get a large number of errors of several types.
Examples:
[error][string constants information] collecting string constants information failed
[error][string constants information] class scala.MatchError: LoadClass(ObjectType(java/lang/Object)) (of class org.opalj.br.instructions.LoadClass)
[error][string constants information] org.opalj.br.analyses.StringConstantsInformationKey$.$anonfun$compute$2(StringConstantsInformationKey.scala:79)
[error][string constants information] org.opalj.br.analyses.StringConstantsInformationKey$.$anonfun$compute$2$adapted(StringConstantsInformationKey.scala:75)
[error][string constants information] org.opalj.br.Code.iterate(Code.scala:702)
[error][string constants information] org.opalj.br.analyses.StringConstantsInformationKey$.$anonfun$compute$1(StringConstantsInformationKey.scala:75)
[error][string constants information] org.opalj.br.analyses.StringConstantsInformationKey$.$anonfun$compute$1$adapted(StringConstantsInformationKey.scala:72)
[error][string constants information] org.opalj.concurrent.package$.$anonfun$parForeachArrayElement$2(package.scala:240)
[error][string constants information] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error][string constants information] scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
[error][string constants information] scala.util.Success.$anonfun$map$1(Try.scala:251)
[error][string constants information] scala.util.Success.map(Try.scala:209)
[error][string constants information] scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
[error][string constants information] scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
[error][string constants information] scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
[error][string constants information] scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
[error][string constants information] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error][string constants information] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error][string constants information] java.lang.Thread.run(Thread.java:748)
Note that these errors are not restricted to LoadClass, but also appear for other types, including Class_W, Int, Int_W and Float.
[error][internal, project configuration] resolving the method reference resulted in an exception: class scala.tools.asm.util.CheckClassAdapter{ /*non virtual*/ char getChar(java.lang.String,int)}
[error][internal, project configuration] class java.lang.StackOverflowError: null
[error][internal, project configuration] org.opalj.ai.AI.continueInterpretation(AI.scala:502)
[error][internal, project configuration] org.opalj.ai.AI.continueInterpretation(AI.scala:387)
[error][internal, project configuration] org.opalj.ai.AI.performInterpretation(AI.scala:360)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvoke(PerformInvocations.scala:84)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvoke$(PerformInvocations.scala:76)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.org$opalj$bugpicker$core$analyses$BasePerformInvocationBugPickerAnalysisDomain$$super$doInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.BasePerformInvocationBugPickerAnalysisDomain.doInvoke(BugPickerAnalysisDomain.scala:134)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.BasePerformInvocationBugPickerAnalysisDomain.doInvoke$(BugPickerAnalysisDomain.scala:128)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.doInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.doInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvoke(PerformInvocations.scala:176)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvoke$(PerformInvocations.scala:161)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.org$opalj$ai$domain$l2$PerformInvocationsWithRecursionDetection$$super$doInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocationsWithRecursionDetection.doInvoke(PerformInvocationsWithRecursionDetection.scala:69)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocationsWithRecursionDetection.doInvoke$(PerformInvocationsWithRecursionDetection.scala:59)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.org$opalj$bugpicker$core$analyses$BasePerformInvocationBugPickerAnalysisDomain$$super$doInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.BasePerformInvocationBugPickerAnalysisDomain.doInvoke(BugPickerAnalysisDomain.scala:162)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.BasePerformInvocationBugPickerAnalysisDomain.doInvoke$(BugPickerAnalysisDomain.scala:156)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.doInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.cg.MethodCallsDomainWithMethodLockup.doNonVirtualInvoke(MethodCallsDomainWithMethodLookup.scala:152)
[error][internal, project configuration] org.opalj.ai.cg.MethodCallsDomainWithMethodLockup.doNonVirtualInvoke$(MethodCallsDomainWithMethodLookup.scala:123)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.doNonVirtualInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.cg.MethodCallsDomainWithMethodLockup.invokestatic(MethodCallsDomainWithMethodLookup.scala:263)
[error][internal, project configuration] org.opalj.ai.cg.MethodCallsDomainWithMethodLockup.invokestatic$(MethodCallsDomainWithMethodLookup.scala:246)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.org$opalj$ai$domain$SpecialMethodsHandling$$super$invokestatic(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.SpecialMethodsHandling.invokestatic(SpecialMethodsHandling.scala:71)
[error][internal, project configuration] org.opalj.ai.domain.SpecialMethodsHandling.invokestatic$(SpecialMethodsHandling.scala:58)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.org$opalj$ai$domain$l2$PerformInvocations$$super$invokestatic(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.fallback$4(PerformInvocations.scala:343)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.$anonfun$invokestatic$1(PerformInvocations.scala:345)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.testAndDoInvoke(PerformInvocations.scala:202)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.testAndDoInvoke$(PerformInvocations.scala:184)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.testAndDoInvoke(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvokeNonVirtual(PerformInvocations.scala:233)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvokeNonVirtual$(PerformInvocations.scala:216)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.doInvokeNonVirtual(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.invokestatic(PerformInvocations.scala:345)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.invokestatic$(PerformInvocations.scala:334)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.org$opalj$ai$domain$l1$ClassValues$$super$invokestatic(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.domain.l1.ClassValues.invokestatic(ClassValues.scala:209)
[error][internal, project configuration] org.opalj.ai.domain.l1.ClassValues.invokestatic$(ClassValues.scala:177)
[error][internal, project configuration] org.opalj.bugpicker.core.analyses.InvocationBugPickerAnalysisDomain.invokestatic(BugPickerAnalysisDomain.scala:205)
[error][internal, project configuration] org.opalj.ai.AI.continueInterpretation(AI.scala:2183)
[error][internal, project configuration] org.opalj.ai.AI.continueInterpretation(AI.scala:387)
[error][internal, project configuration] org.opalj.ai.AI.performInterpretation(AI.scala:360)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvoke(PerformInvocations.scala:84)
[error][internal, project configuration] org.opalj.ai.domain.l2.PerformInvocations.doInvoke$(PerformInvocations.scala:76)
[...]
On one system. it additionally raises a few of these (apparently one per thread?):
[error][class file reader] processing org/opalj/graphs/package$.class failed
[error][class file reader] class java.lang.ClassCastException: null
[error][class file reader] org.opalj.br.instructions.Instruction.asGotoInstruction(Instruction.scala:107)
[error][class file reader] org.opalj.br.instructions.Instruction.asGotoInstruction$(Instruction.scala:107)
[error][class file reader] org.opalj.br.instructions.NOP$.asGotoInstruction(NOP.scala:40)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.$anonfun$optimizeInstructions$7(BytecodeOptimizer.scala:440)
[error][class file reader] scala.runtime.java8.JFunction1$mcVI$sp.apply(JFunction1$mcVI$sp.java:12)
[error][class file reader] scala.collection.immutable.Set$Set1.foreach(Set.scala:95)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.optimizeInstructions(BytecodeOptimizer.scala:421)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.optimizeInstructions$(BytecodeOptimizer.scala:138)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.optimizeInstructions(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.$anonfun$Method_Info$1(BytecodeOptimizer.scala:129)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.$anonfun$Method_Info$1$adapted(BytecodeOptimizer.scala:128)
[error][class file reader] scala.Option.foreach(Option.scala:257)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.Method_Info(BytecodeOptimizer.scala:128)
[error][class file reader] org.opalj.br.reader.BytecodeOptimizer.Method_Info$(BytecodeOptimizer.scala:121)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.Method_Info(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.Method_Info(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.bi.reader.MethodsReader.Method_Info(MethodsReader.scala:87)
[error][class file reader] org.opalj.bi.reader.MethodsReader.Methods(MethodsReader.scala:77)
[error][class file reader] org.opalj.bi.reader.MethodsReader.Methods$(MethodsReader.scala:74)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.Methods(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.Methods(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.bi.reader.ClassFileReader.ClassFile(ClassFileReader.scala:264)
[error][class file reader] org.opalj.bi.reader.ClassFileReader.ClassFile$(ClassFileReader.scala:236)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.ClassFile(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.bi.reader.ClassFileReader.$anonfun$ClassFile$3(ClassFileReader.scala:325)
[error][class file reader] org.opalj.io.package$.process(package.scala:170)
[error][class file reader] org.opalj.bi.reader.ClassFileReader.ClassFile(ClassFileReader.scala:324)
[error][class file reader] org.opalj.bi.reader.ClassFileReader.ClassFile$(ClassFileReader.scala:323)
[error][class file reader] org.opalj.br.reader.Java8FrameworkWithCaching.ClassFile(Java8FrameworkWithCaching.scala:42)
[error][class file reader] org.opalj.bi.reader.ClassFileReader.$anonfun$ClassFiles$2(ClassFileReader.scala:448)
[error][class file reader] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error][class file reader] scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
[error][class file reader] scala.util.Success.$anonfun$map$1(Try.scala:251)
[error][class file reader] scala.util.Success.map(Try.scala:209)
[error][class file reader] scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
[error][class file reader] scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
[error][class file reader] scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
[error][class file reader] scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
[error][class file reader] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error][class file reader] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error][class file reader] java.lang.Thread.run(Thread.java:745)
Comments (7)
-
repo owner -
repo owner The last issue is resolved by commit c2191d7f
-
repo owner The problem in the middle is just a configuration issue - I will adapt the settings in general and hope that this issue is then solved.
-
repo owner - changed status to resolved
-
repo owner -
assigned issue to
- changed version to 1.0.0
fixed for 1.1.0
-
assigned issue to
-
repo owner Merge branch 'develop' into feature/MethodPurityAnalysis
- develop: (254 commits)
[fix] for method references using Boolean an exceptions was thrown when the code was rewritten
[new] added method asBooleanType
added hint regarding the usage of another domain
fixed issue
#127[docs] improved [refactoring] improved the signature [todos] deleted an IMPROVE because there is nothing to improve [refactoring] we are now using toSet IntTrieSet methods are overridden improved the scaladoc fixes issue#124fixed isIndexIsValid for array values forgotten commit.. improved asserts added several test cases related to array values and rnages refactored the ArrayValues domain and implemented sound support for tracking the length of arrays in common cases added remove regarding inefficient Option[Int] uses killed inefficient extractor added improve related to IntOption fixed comment ...
→ <<cset 131b7ac7d437>>
- develop: (254 commits)
[fix] for method references using Boolean an exceptions was thrown when the code was rewritten
[new] added method asBooleanType
added hint regarding the usage of another domain
fixed issue
-
repo owner Merge branch 'develop' into feature/VirtualFormalParameters
- develop: (36 commits)
improved handling for access flags
[fix] for method references using Boolean an exceptions was thrown when the code was rewritten
[new] added method asBooleanType
added hint regarding the usage of another domain
fixed issue
#127[docs] improved [refactoring] improved the signature [todos] deleted an IMPROVE because there is nothing to improve [refactoring] we are now using toSet IntTrieSet methods are overridden improved the scaladoc fixes issue#124fixed isIndexIsValid for array values forgotten commit.. improved asserts added several test cases related to array values and rnages refactored the ArrayValues domain and implemented sound support for tracking the length of arrays in common cases added remove regarding inefficient Option[Int] uses killed inefficient extractor added improve related to IntOption ...
→ <<cset 776a6cb79781>>
- develop: (36 commits)
improved handling for access flags
[fix] for method references using Boolean an exceptions was thrown when the code was rewritten
[new] added method asBooleanType
added hint regarding the usage of another domain
fixed issue
- Log in to comment
The first issue is resolved by commit 9afee34