Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Null Pointer Exception when running on Anonymous Subclass #622

Closed
ColmBhandal opened this issue Jun 27, 2018 · 11 comments
Closed

Null Pointer Exception when running on Anonymous Subclass #622

ColmBhandal opened this issue Jun 27, 2018 · 11 comments

Comments

@ColmBhandal
Copy link

ColmBhandal commented Jun 27, 2018

I'm getting an NPE when running Open JML on a class within which we create an object of an aonymous subclass e.g. an anonymous subclass of Function. We run:

java -jar C:\OpenJML\openjml.jar Test.java

For this file:

import com.google.common.base.Function;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;

import java.util.Collection;
import java.util.Set;


public class Test {

  public void blah(Collection<String> tagNames) {
    final Set<String> lowerTagNames = Sets.newHashSet(Iterables.transform(tagNames, new Function<String, String>() {
      @Override
      public String apply(String s) {
        return s.toLowerCase();
      }
    }));
  }

}

And get:

Internal JML bug - please report. BuildOpenJML-0.8.35-20180614
java.lang.NullPointerException
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlMethodDecl(JmlTreeCopier.java:131)
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlMethodDecl(JmlTreeCopier.java:1)
at org.jmlspecs.openjml.JmlTree$JmlMethodDecl.accept(JmlTree.java:1165)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at org.jmlspecs.openjml.JmlTreeCopier.copy(JmlTreeCopier.java:88)
at org.jmlspecs.openjml.JmlTreeCopier.copy(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitClass(TreeCopier.java:162)
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlClassDecl(JmlTreeCopier.java:117)
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlClassDecl(JmlTreeCopier.java:1)
at org.jmlspecs.openjml.JmlTree$JmlClassDecl.accept(JmlTree.java:1081)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at com.sun.tools.javac.tree.TreeCopier.visitNewClass(TreeCopier.java:293)
at org.jmlspecs.openjml.JmlTreeCopier.visitNewClass(JmlTreeCopier.java:774)
at org.jmlspecs.openjml.JmlTreeCopier.visitNewClass(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitNewClass(TreeCopier.java:1)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1532)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at org.jmlspecs.openjml.JmlTreeCopier.copy(JmlTreeCopier.java:88)
at org.jmlspecs.openjml.JmlTreeCopier.copy(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitMethodInvocation(TreeCopier.java:269)
at org.jmlspecs.openjml.JmlTreeCopier.visitMethodInvocation(JmlTreeCopier.java:760)
at org.jmlspecs.openjml.JmlTreeCopier.visitMethodInvocation(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitMethodInvocation(TreeCopier.java:1)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1477)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:51)
at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:368)
at com.sun.tools.javac.comp.DeferredAttr$1.complete(DeferredAttr.java:280)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:246)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:233)
at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:1009)
at com.sun.tools.javac.comp.Resolve$4.checkArg(Resolve.java:836)
at com.sun.tools.javac.comp.Resolve$AbstractMethodCheck.argumentsAcceptable(Resolve.java:736)
at com.sun.tools.javac.comp.Resolve$4.argumentsAcceptable(Resolve.java:845)
at com.sun.tools.javac.comp.Infer.instantiateMethod(Infer.java:162)
at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:568)
at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1450)
at com.sun.tools.javac.comp.JmlResolve.findMethodInScope(JmlResolve.java:281)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1708)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1681)
at com.sun.tools.javac.comp.Resolve$9.doLookup(Resolve.java:2452)
at com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3113)
at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3364)
at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2449)
at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2443)
at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:3407)
at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3289)
at com.sun.tools.javac.comp.JmlAttr.visitSelect(JmlAttr.java:5059)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1897)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1826)
at com.sun.tools.javac.comp.JmlAttr.visitApply(JmlAttr.java:3586)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.visitReturn(Attr.java:1687)
at com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1384)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:661)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1125)
at com.sun.tools.javac.comp.JmlAttr.visitBlock(JmlAttr.java:629)
at com.sun.tools.javac.comp.JmlAttr.visitJmlBlock(JmlAttr.java:3935)
at org.jmlspecs.openjml.JmlTree$JmlBlock.accept(JmlTree.java:1224)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1013)
at com.sun.tools.javac.comp.JmlAttr.visitMethodDef(JmlAttr.java:1007)
at com.sun.tools.javac.comp.JmlAttr.visitJmlMethodDecl(JmlAttr.java:5960)
at org.jmlspecs.openjml.JmlTree$JmlMethodDecl.accept(JmlTree.java:1155)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4376)
at com.sun.tools.javac.comp.JmlAttr.attribClassBody(JmlAttr.java:492)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4284)
at com.sun.tools.javac.comp.JmlAttr.attribClass(JmlAttr.java:370)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4213)
at com.sun.tools.javac.comp.Attr.visitClassDef(Attr.java:870)
at com.sun.tools.javac.comp.JmlAttr.visitClassDef(JmlAttr.java:5951)
at com.sun.tools.javac.comp.JmlAttr.visitJmlClassDecl(JmlAttr.java:5937)
at org.jmlspecs.openjml.JmlTree$JmlClassDecl.accept(JmlTree.java:1071)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.visitNewClass(Attr.java:2146)
at com.sun.tools.javac.comp.JmlAttr.visitNewClass(JmlAttr.java:891)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1516)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.visitReturn(Attr.java:1687)
at com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1384)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:661)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1125)
at com.sun.tools.javac.comp.JmlAttr.visitBlock(JmlAttr.java:629)
at com.sun.tools.javac.comp.JmlAttr.visitJmlBlock(JmlAttr.java:3935)
at org.jmlspecs.openjml.JmlTree$JmlBlock.accept(JmlTree.java:1224)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1013)
at com.sun.tools.javac.comp.JmlAttr.visitMethodDef(JmlAttr.java:1007)
at com.sun.tools.javac.comp.JmlAttr.visitJmlMethodDecl(JmlAttr.java:5960)
at org.jmlspecs.openjml.JmlTree$JmlMethodDecl.accept(JmlTree.java:1155)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4376)
at com.sun.tools.javac.comp.JmlAttr.attribClassBody(JmlAttr.java:492)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4284)
at com.sun.tools.javac.comp.JmlAttr.attribClass(JmlAttr.java:370)
at com.sun.tools.javac.comp.JmlAttr.completeTodo(JmlAttr.java:448)
at com.sun.tools.javac.comp.JmlAttr.attribClass(JmlAttr.java:414)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4213)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4188)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1258)
at org.jmlspecs.openjml.JmlCompiler.attribute(JmlCompiler.java:471)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:898)
at org.jmlspecs.openjml.JmlCompiler.compile2(JmlCompiler.java:694)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:867)
at com.sun.tools.javac.main.Main.compile(Main.java:553)
at com.sun.tools.javac.main.Main.compile(Main.java:410)
at org.jmlspecs.openjml.Main.compile(Main.java:577)
at com.sun.tools.javac.main.Main.compile(Main.java:399)
at com.sun.tools.javac.main.Main.compile(Main.java:390)
at org.jmlspecs.openjml.Main.execute(Main.java:413)
at org.jmlspecs.openjml.Main.execute(Main.java:371)
at org.jmlspecs.openjml.Main.execute(Main.java:358)
at org.jmlspecs.openjml.Main.main(Main.java:330)

@davidcok
Copy link
Member

davidcok commented Jun 27, 2018 via email

@ColmBhandal
Copy link
Author

ColmBhandal commented Jun 27, 2018 via email

@davidcok
Copy link
Member

davidcok commented Jun 27, 2018 via email

@ColmBhandal
Copy link
Author

ColmBhandal commented Jun 27, 2018 via email

@ColmBhandal
Copy link
Author

ColmBhandal commented Jun 27, 2018 via email

@ColmBhandal ColmBhandal changed the title Null Pointer Exception when running on directories containing other directories Null Pointer Exception when running on anonymous Function Class Jun 27, 2018
@ColmBhandal ColmBhandal changed the title Null Pointer Exception when running on anonymous Function Class Null Pointer Exception when running on Anonymous Subclass Jun 27, 2018
@davidcok
Copy link
Member

Please point me to (or send me) the versions of the com.google.common libraries you are using

@ColmBhandal
Copy link
Author

Sure. It's guava-17.0.jar. It ships with IntelliJ IDEA Community Edition 15.0.6.

@ColmBhandal
Copy link
Author

ColmBhandal commented Jun 28, 2018

David I don't think this is a Google dependency issue. I think it's something to do with functions in anonymous classes.


I changed the code as follows:

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Function;


public class Test {

  public void blah(Collection<String> tagNames) {
    final Set<String> lowerTagNames = new HashSet<String>();
    lowerTagNames.add(new Function<String, String>() {
      @Override
      public String apply(String s) {
        return s.toLowerCase();
      }
    }.apply("adsfeasd"));
  }

}

And stripped the cmd line down to this:
"C:\Program Files\Java\jdk1.8.0_162\jre\bin\java" -jar C:\OpenJML\openjml.jar ./Test.java

Resulting in:

Internal JML bug - please report. BuildOpenJML-0.8.35-20180614
java.lang.NullPointerException
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlMethodDecl(JmlTreeCopier.java:131)
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlMethodDecl(JmlTreeCopier.java:1)
at org.jmlspecs.openjml.JmlTree$JmlMethodDecl.accept(JmlTree.java:1165)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at org.jmlspecs.openjml.JmlTreeCopier.copy(JmlTreeCopier.java:88)
at org.jmlspecs.openjml.JmlTreeCopier.copy(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitClass(TreeCopier.java:162)
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlClassDecl(JmlTreeCopier.java:117)
at org.jmlspecs.openjml.JmlTreeCopier.visitJmlClassDecl(JmlTreeCopier.java:1)
at org.jmlspecs.openjml.JmlTree$JmlClassDecl.accept(JmlTree.java:1081)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at com.sun.tools.javac.tree.TreeCopier.visitNewClass(TreeCopier.java:293)
at org.jmlspecs.openjml.JmlTreeCopier.visitNewClass(JmlTreeCopier.java:774)
at org.jmlspecs.openjml.JmlTreeCopier.visitNewClass(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitNewClass(TreeCopier.java:1)
at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1532)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at com.sun.tools.javac.tree.TreeCopier.visitMemberSelect(TreeCopier.java:318)
at org.jmlspecs.openjml.JmlTreeCopier.visitMemberSelect(JmlTreeCopier.java:787)
at org.jmlspecs.openjml.JmlTreeCopier.visitMemberSelect(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitMemberSelect(TreeCopier.java:1)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1903)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at com.sun.tools.javac.tree.TreeCopier.visitMethodInvocation(TreeCopier.java:268)
at org.jmlspecs.openjml.JmlTreeCopier.visitMethodInvocation(JmlTreeCopier.java:760)
at org.jmlspecs.openjml.JmlTreeCopier.visitMethodInvocation(JmlTreeCopier.java:1)
at com.sun.tools.javac.tree.TreeCopier.visitMethodInvocation(TreeCopier.java:1)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1477)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:58)
at com.sun.tools.javac.tree.TreeCopier.copy(TreeCopier.java:51)
at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:368)
at com.sun.tools.javac.comp.DeferredAttr$1.complete(DeferredAttr.java:280)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:246)
at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:233)
at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:1009)
at com.sun.tools.javac.comp.Resolve$4.checkArg(Resolve.java:836)
at com.sun.tools.javac.comp.Resolve$AbstractMethodCheck.argumentsAcceptable(Resolve.java:736)
at com.sun.tools.javac.comp.Resolve$4.argumentsAcceptable(Resolve.java:845)
at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:580)
at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1450)
at com.sun.tools.javac.comp.JmlResolve.findMethodInScope(JmlResolve.java:281)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1708)
at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1681)
at com.sun.tools.javac.comp.Resolve$9.doLookup(Resolve.java:2452)
at com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3113)
at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3364)
at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2449)
at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:2443)
at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:3407)
at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3289)
at com.sun.tools.javac.comp.JmlAttr.visitSelect(JmlAttr.java:5059)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1897)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1826)
at com.sun.tools.javac.comp.JmlAttr.visitApply(JmlAttr.java:3586)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:625)
at com.sun.tools.javac.comp.Attr.visitExec(Attr.java:1594)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1296)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:661)
at com.sun.tools.javac.comp.Attr.visitBlock(Attr.java:1125)
at com.sun.tools.javac.comp.JmlAttr.visitBlock(JmlAttr.java:629)
at com.sun.tools.javac.comp.JmlAttr.visitJmlBlock(JmlAttr.java:3935)
at org.jmlspecs.openjml.JmlTree$JmlBlock.accept(JmlTree.java:1224)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.visitMethodDef(Attr.java:1013)
at com.sun.tools.javac.comp.JmlAttr.visitMethodDef(JmlAttr.java:1007)
at com.sun.tools.javac.comp.JmlAttr.visitJmlMethodDecl(JmlAttr.java:5960)
at org.jmlspecs.openjml.JmlTree$JmlMethodDecl.accept(JmlTree.java:1155)
at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:576)
at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:645)
at com.sun.tools.javac.comp.JmlAttr.attribStat(JmlAttr.java:509)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4376)
at com.sun.tools.javac.comp.JmlAttr.attribClassBody(JmlAttr.java:492)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4284)
at com.sun.tools.javac.comp.JmlAttr.attribClass(JmlAttr.java:370)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4213)
at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4188)
at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1258)
at org.jmlspecs.openjml.JmlCompiler.attribute(JmlCompiler.java:471)
at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:898)
at org.jmlspecs.openjml.JmlCompiler.compile2(JmlCompiler.java:694)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:867)
at com.sun.tools.javac.main.Main.compile(Main.java:553)
at com.sun.tools.javac.main.Main.compile(Main.java:410)
at org.jmlspecs.openjml.Main.compile(Main.java:577)
at com.sun.tools.javac.main.Main.compile(Main.java:399)
at com.sun.tools.javac.main.Main.compile(Main.java:390)
at org.jmlspecs.openjml.Main.execute(Main.java:413)
at org.jmlspecs.openjml.Main.execute(Main.java:371)
at org.jmlspecs.openjml.Main.execute(Main.java:358)
at org.jmlspecs.openjml.Main.main(Main.java:330)

Process finished with exit code 4

@davidcok
Copy link
Member

davidcok commented Jun 29, 2018 via email

@ColmBhandal
Copy link
Author

Awesome :)

@davidcok
Copy link
Member

davidcok commented Jul 1, 2018

Fixed in 0.8.36

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants