NBAndroid Gradle: Load/reload project with flavours raises 'unexpected exception'

Issue #32 resolved
Rob Smith created an issue

Loading a NBAndroid Gradle project, which includes flavours, causes an exception to be displayed in Window->IDE Tools->Notifications. This can also be induced using Window->Project->Reload Project.

java.lang.NullPointerException
    at org.nbandroid.netbeans.gradle.query.GradleAndroidClassPathProvider$TestRootsSupplier$1.apply(GradleAndroidClassPathProvider.java:426)
    at org.nbandroid.netbeans.gradle.query.GradleAndroidClassPathProvider$TestRootsSupplier$1.apply(GradleAndroidClassPathProvider.java:414)
    at com.google.common.collect.Iterators$8.transform(Iterators.java:794)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at com.google.common.collect.Iterators$5.hasNext(Iterators.java:543)
    at com.google.common.collect.Iterators$5.hasNext(Iterators.java:542)
    at com.google.common.collect.Iterators$7.computeNext(Iterators.java:645)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
    at com.google.common.collect.Iterators.addAll(Iterators.java:356)
    at com.google.common.collect.Lists.newArrayList(Lists.java:146)
    at com.google.common.collect.Lists.newArrayList(Lists.java:128)
    at org.nbandroid.netbeans.gradle.query.GradleAndroidClassPathProvider$GradlePathImpl.getResources(GradleAndroidClassPathProvider.java:505)
    at org.netbeans.api.java.classpath.ClassPath.entries(ClassPath.java:350)
    at org.netbeans.api.java.classpath.ClassPath.getRoots(ClassPath.java:262)
    at org.netbeans.api.java.classpath.ClassPath.findOwnerRoot(ClassPath.java:531)
    at org.nbandroid.netbeans.gradle.query.GradleAndroidClassPathProvider.findClassPath(GradleAndroidClassPathProvider.java:118)
    at org.netbeans.modules.java.project.ProjectClassPathProvider.findClassPath(ProjectClassPathProvider.java:73)
    at org.netbeans.api.java.classpath.ClassPath.getClassPath(ClassPath.java:628)
    at org.netbeans.modules.groovy.editor.api.parser.GroovyParser.parseBuffer(GroovyParser.java:443)
    at org.netbeans.modules.groovy.editor.api.parser.GroovyParser.parse(GroovyParser.java:157)
    at org.netbeans.modules.parsing.impl.TaskProcessor.callParse(TaskProcessor.java:605)
    at org.netbeans.modules.parsing.impl.SourceCache.getResult(SourceCache.java:236)
[catch] at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:727)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1432)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2042)

This issue can be reproduced using the HelloFlavours project attached to NBAndroid issue #31.

Commenting out the productFlavors block in the build.gradle file and reloading the project, as above, prevents the exception being raised. I suspect flavour support is broken in either the NBAndroid Gradle Support plugin v1.243 or the Gradle Support plugin v1.3.0.

While the fault itself is a 'silent' error and seems harmless, it may be related to a number of other issues that can be demonstrated with HelloFlavours.

I have also reported this issue through NetBeans Exception Reporter: https://netbeans.org/bugzilla/show_bug.cgi?id=244459

Comments (1)

  1. Log in to comment