- changed status to resolved
NullPointerException in RecordDefUse due to JSR/Ret
With the fixes for issue #140 applied, the following error occurs on galleon-2.3.0 (attached file) from XCorpus:
java.lang.NullPointerException
at org.opalj.ai.domain.RecordDefUse.operandOrigin(RecordDefUse.scala:179)
at org.opalj.ai.domain.RecordDefUse.operandOrigin$(RecordDefUse.scala:179)
at org.opalj.ai.domain.l1.DefaultDomainWithCFGAndDefUse.operandOrigin(DefaultDomain.scala:83)
at org.opalj.tac.TACAI$.operandUse$1(TACAI.scala:355)
at org.opalj.tac.TACAI$.apply(TACAI.scala:856)
at org.opalj.tac.DefaultTACAIKey$.computeAndCacheTAC$1(DefaultTACAIKey.scala:77)
at org.opalj.tac.DefaultTACAIKey$.$anonfun$compute$1(DefaultTACAIKey.scala:94)
at org.opalj.fpcf.analyses.L2PurityAnalysis.determinePurity(L2PurityAnalysis.scala:351)
at org.opalj.fpcf.analyses.L2PurityAnalysis$.$anonfun$start$1(L2PurityAnalysis.scala:427)
at org.opalj.fpcf.LockBasedPropertyStore.$anonfun$scheduleComputation$1(LockBasedPropertyStore.scala:1417)
at org.opalj.fpcf.LockBasedPropertyStore$$anon$4.run(LockBasedPropertyStore.scala:1454)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Comments (10)
-
repo owner -
reporter - changed status to open
Still fails with current development branch.
-
reporter This happens in org.lnicholls.galleon.togo.ToGo.getRecordings
-
repo owner The problem can be recreated using:
AbstractInterpretationFramework/run -cp path\to\bin.zip -domain org.opalj.ai.domain.l1.DefaultDomainWithCFGAndDefUse -class org.lnicholls.galleon.togo.ToGo -method getRecordings
(Note: the AI runs, but the def-use information for the second athrow is missing and this will crash the TAC conversion, because the underlying instruction is NOT dead!)
-
reporter Attaching another class file (UpdatableResultSet.class) from the MySQL JDBC connector that also because of JSR/RET shows the same problem in method extractDefaultValues().
-
reporter - attached UpdatableResultSet.class
-
- changed title to NullPointerException in RecordDefUse due to JSR/Ret
- attached cy.class
In cy.class the method
b(byte[], int, byte[], int)
-
repo owner - changed version to 1.1.0
-
repo owner - changed status to resolved
Fixed by commit
#7dc5b8af74647ecf21715817f0f7ef6ecd23bc69 -
repo owner - removed version
Removing version: 1.1.0 (automated comment)
- Log in to comment
Solved by https://bitbucket.org/delors/opal/commits/adb1c6d9d93223eac7e022f6c3ed826d535f4e3c