{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/buck/issues/403","labels_url":"https://api.github.com/repos/facebook/buck/issues/403/labels{/name}","comments_url":"https://api.github.com/repos/facebook/buck/issues/403/comments","events_url":"https://api.github.com/repos/facebook/buck/issues/403/events","html_url":"https://github.com/facebook/buck/issues/403","id":105241474,"number":403,"title":"NullPointerException in Checker Framework","user":{"login":"mread","id":309102,"avatar_url":"https://avatars.githubusercontent.com/u/309102?v=3","gravatar_id":"","url":"https://api.github.com/users/mread","html_url":"https://github.com/mread","followers_url":"https://api.github.com/users/mread/followers","following_url":"https://api.github.com/users/mread/following{/other_user}","gists_url":"https://api.github.com/users/mread/gists{/gist_id}","starred_url":"https://api.github.com/users/mread/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mread/subscriptions","organizations_url":"https://api.github.com/users/mread/orgs","repos_url":"https://api.github.com/users/mread/repos","events_url":"https://api.github.com/users/mread/events{/privacy}","received_events_url":"https://api.github.com/users/mread/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-09-07T16:05:07Z","updated_at":"2015-09-09T13:15:25Z","closed_at":null,"body":"As mentioned briefly here 5668382cec9e0e17b32e82a9a11df9b41b38903e, we've been seeing NPEs when compiling with the checker framework annotation processors. Our suspicion is that it's a threading issue with checker that's triggered by the parallel compiles that buck achieves but we've made no more progress than that.\r\n\r\nWe've reverted back to a singleton classloader in order to work around this issue (8cba4a28635f9cd10e40b4f4ea2f258ff0747b75).\r\n\r\nOur intention is to log an issue with the checker framework but I thought I'd create one here too in case anyone has any insight and to track progress.\r\n\r\nThe stacktrace is as follows:\r\n```\r\njava.lang.RuntimeException: java.lang.NullPointerException\r\n\tat com.sun.tools.javac.main.Main.compile(Main.java:559)\r\n\tat com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)\r\n\tat com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)\r\n\tat com.facebook.buck.java.Jsr199Javac.buildWithClasspath(Jsr199Javac.java:191)\r\n\tat com.facebook.buck.java.JavacStep.tryBuildWithFirstOrderDeps(JavacStep.java:148)\r\n\tat com.facebook.buck.java.JavacStep.execute(JavacStep.java:133)\r\n\tat com.facebook.buck.step.DefaultStepRunner.runStepForBuildTarget(DefaultStepRunner.java:63)\r\n\tat com.facebook.buck.rules.CachingBuildEngine.executeCommandsNowThatDepsAreBuilt(CachingBuildEngine.java:851)\r\n\tat com.facebook.buck.rules.CachingBuildEngine.access$7(CachingBuildEngine.java:826)\r\n\tat com.facebook.buck.rules.CachingBuildEngine$1.apply(CachingBuildEngine.java:328)\r\n\tat com.facebook.buck.rules.CachingBuildEngine$1.apply(CachingBuildEngine.java:1)\r\n\tat com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:906)\r\n\tat com.google.common.util.concurrent.Futures$1$1.run(Futures.java:635)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\nCaused by: java.lang.NullPointerException\r\n\tat org.checkerframework.framework.source.SourceChecker.typeProcess(SourceChecker.java:885)\r\n\tat org.checkerframework.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:452)\r\n\tat org.checkerframework.javacutil.AbstractTypeProcessor$AttributionTaskListener.finished(AbstractTypeProcessor.java:205)\r\n\tat com.sun.tools.javac.api.ClientCodeWrapper$WrappedTaskListener.finished(ClientCodeWrapper.java:681)\r\n\tat com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:111)\r\n\tat com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1342)\r\n\tat com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1296)\r\n\tat com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)\r\n\tat com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)\r\n\tat com.sun.tools.javac.main.Main.compile(Main.java:523)\r\n```"},"comment":{"url":"https://api.github.com/repos/facebook/buck/issues/comments/138905621","html_url":"https://github.com/facebook/buck/issues/403#issuecomment-138905621","issue_url":"https://api.github.com/repos/facebook/buck/issues/403","id":138905621,"user":{"login":"mread","id":309102,"avatar_url":"https://avatars.githubusercontent.com/u/309102?v=3","gravatar_id":"","url":"https://api.github.com/users/mread","html_url":"https://github.com/mread","followers_url":"https://api.github.com/users/mread/followers","following_url":"https://api.github.com/users/mread/following{/other_user}","gists_url":"https://api.github.com/users/mread/gists{/gist_id}","starred_url":"https://api.github.com/users/mread/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mread/subscriptions","organizations_url":"https://api.github.com/users/mread/orgs","repos_url":"https://api.github.com/users/mread/repos","events_url":"https://api.github.com/users/mread/events{/privacy}","received_events_url":"https://api.github.com/users/mread/received_events","type":"User","site_admin":false},"created_at":"2015-09-09T13:15:25Z","updated_at":"2015-09-09T13:15:25Z","body":"Yes, your decription matches exactly what we see. I might try a standalone test to see what happens when you access a variable that references a class that has been unloaded via classloader.close()."}}