AI with PerformInvokations domain fails on checkstyle-5.1

Issue #133 resolved
florian_kuebler
created an issue

When generating the three-address code for each method in checkstyle-5.1 using the DefaultPerformInvocationsDomainWithCFGAndDefUse, the AI fails with the following error:

[error] org.opalj.ai.InterpretationFailedException$$anon$1: the interpretation failed
[error]     at org.opalj.ai.InterpretationFailedException$.apply(InterpretationFailedException.scala:81)
[error]     at org.opalj.ai.AI.throwInterpretationFailedException$1(AI.scala:578)
[error]     at org.opalj.ai.AI.continueInterpretation(AI.scala:2707)
[error]     at org.opalj.ai.AI.continueInterpretation(AI.scala:384)
[error]     at org.opalj.ai.AI.performInterpretation(AI.scala:357)
[error]     at org.opalj.ai.AI.perform(AI.scala:331)
[error]     at org.opalj.ai.AI.apply(AI.scala:196)
[error]     at org.opalj.ai.common.SimpleAIKey$.$anonfun$compute$3(SimpleAIKey.scala:99)
[error]     at org.opalj.tac.DefaultTACAIKey$.computeAndCacheTAC$1(DefaultTACAIKey.scala:76)
[error]     at org.opalj.tac.DefaultTACAIKey$.$anonfun$compute$1(DefaultTACAIKey.scala:94)
[error]     at org.opalj.fpcf.analyses.escape.SimpleEscapeAnalysis.determineEscape(SimpleEscapeAnalysis.scala:111)
[error]     at org.oplj.fpcf.analyses.escape.SimpleEscapeAnalysis$.$anonfun$start$1(SimpleEscapeAnalysis.scala:142)
[error]     at org.opalj.fpcf.PropertyStore.$anonfun$scheduleComputation$1(PropertyStore.scala:1647)
[error]     at org.opalj.fpcf.PropertyStore$$anon$7.run(PropertyStore.scala:1684)
[error]     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error]     at java.lang.Thread.run(Thread.java:745)
[error] Caused by: java.lang.AssertionError: assertion failed: should be precise Set({com.puppycrawl.tools.checkstyle.api.DetailAST, null}[23;refId=124], {com.puppycrawl.tools.checkstyle.api.DetailAST, null}[1;refId=108])
[error]     at scala.Predef$.assert(Predef.scala:219)
[error]     at org.opalj.ai.domain.l1.ReferenceValues$MultipleReferenceValues.<init>(ReferenceValues.scala:1083)

Comments (4)

  1. Michael Eichberg repo owner

    This issue appears if we have an incomplete type hierarchy where we join an MObjectType --which represents a final type, but which also explicitly lists a super type to satisfy the CHECKCAST contract (the super type is not part of the code base!) -- with an SObjectType representing the final type...).

  2. Michael Eichberg repo owner

    Merge branch 'develop' into feature/ExtendedPurityProperty

    • develop: fixes Issue #137 fixed issue #133 added comment regarding a very special case related to incomplete type hierarchies and final types fixed comment removed old code improved the output

    → <<cset 8dba9358d1da>>

  3. Log in to comment