MultipleReferenceValues bypass null -> NullPointerException Conversion

Issue #25 resolved
Frederik Buss-Joraschek created an issue

Analyzing the code with l1.ReferenceValues creates a MultipleReferenceValue that contains a null value. When throwing it doesn't convert null -> NullPointerException. This results in a DomainException when searching for a exception handler: isSubtypeOf is not defined for "null" values.

try {
  Exception e = null;
  if ("".isEmpty())
    e = new RuntimeException();

  throw e;
} catch (Exception e) {}

Partital Stacktrace with Commit 579718ef46.

[the abstract interpretation failed] reason:
de.tud.cs.st.bat.resolved.ai.DomainException: isSubtypeOf is not defined for "null" values
de.tud.cs.st.bat.resolved.ai.domain.l0.TypeLevelReferenceValues$NullValue$class.isValueSubtypeOf(TypeLevelReferenceValues.scala:650)
de.tud.cs.st.bat.resolved.ai.domain.l0.DefaultTypeLevelReferenceValues$NullValue.isValueSubtypeOf(DefaultTypeLevelReferenceValues.scala:62)
de.tud.cs.st.bat.resolved.ai.domain.l0.DefaultTypeLevelReferenceValues$NullValue.isValueSubtypeOf(DefaultTypeLevelReferenceValues.scala:62)
de.tud.cs.st.bat.resolved.ai.AI$$anonfun$5$$anonfun$apply$6.apply(AI.scala:966)
de.tud.cs.st.bat.resolved.ai.AI$$anonfun$5$$anonfun$apply$6.apply(AI.scala:958)

Comments (2)

  1. Log in to comment