import com.google.java.contract.*;
public class Test {
@Ensures("old(true)")
@ThrowEnsures({ "RuntimeException", "old(true)" })
public static void main(String[] arg) { }
}
I get the following stack trace (using version 6347fae9e08f3a3b303d5c0f4db2b3e135710cbd):
[com.google.java.contract:agent FATAL ERROR while instrumenting Test (stack trace follows)]
java.lang.ArrayIndexOutOfBoundsException: 1
at com.google.java.contract.core.agent.SpecificationMethodAdapter.allocateOldValues(SpecificationMethodAdapter.java:336)
at com.google.java.contract.core.agent.SpecificationMethodAdapter.onMethodEnter(SpecificationMethodAdapter.java:207)
at org.objectweb.asm.commons.AdviceAdapter.visitCode(Unknown Source)
at org.objectweb.asm.ClassReader.b(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.google.java.contract.core.agent.ContractClassFileTransformer.instrumentWithContracts(ContractClassFileTransformer.java:391)
at com.google.java.contract.core.agent.ContractClassFileTransformer.transform(ContractClassFileTransformer.java:277)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
Here is a simplified test case:
I get the following stack trace (using version 6347fae9e08f3a3b303d5c0f4db2b3e135710cbd):