Lint error : NullPointerException:ClsFileImpl.getMirror

422 views
Skip to first unread message

Mona

unread,
Mar 17, 2018, 2:27:12 PM3/17/18
to lint-dev

Hello, i have this error when running lint on my application :


A
.java: Error: Unexpected failure during lint analysis of FluencyParametersDataModelManager.java (this is a bug in lint or one of the libraries it depends on)
`NullPointerException:ClsFileImpl.getMirror(ClsFileImpl.java:393)
←ClsElementImpl.getMirror(ClsElementImpl.java:159)
←ClsElementImpl.getText(ClsElementImpl.java:202)
←InferenceSession.argConstraints(InferenceSession.java:1829)
←InferenceSession.isFunctionalTypeMoreSpecific(InferenceSession.java:1760)
←InferenceSession.isFunctionalTypeMoreSpecificOnExpression(InferenceSession.java:1741)
←JavaMethodsConflictResolver.isFunctionalTypeMoreSpecific(JavaMethodsConflictResolver.java:865)
←JavaMethodsConflictResolver.isTypeMoreSpecific(JavaMethodsConflictResolver.java:759)


You can set environment variable LINT_PRINT_STACKTRACE=true to dump a full stacktrace to stdout. [LintError]



i'm getting this same error on two files, i tried updating both gradle and android plugin but still had the same issue.

Here's the full stacktrace after setting LINT_PRINT_STACKTRACE=true :

java.lang.NullPointerException
        at com.intellij.psi.impl.compiled.ClsFileImpl.getMirror(ClsFileImpl.java:393)
        at com.intellij.psi.impl.compiled.ClsElementImpl.getMirror(ClsElementImpl.java:159)
        at com.intellij.psi.impl.compiled.ClsElementImpl.getText(ClsElementImpl.java:202)
        at com.intellij.psi.impl.source.resolve.graphInference.InferenceSession.argConstraints(InferenceSession.java:1841)
        at com.intellij.psi.impl.source.resolve.graphInference.InferenceSession.isFunctionalTypeMoreSpecific(InferenceSession.java:1772)
        at com.intellij.psi.impl.source.resolve.graphInference.InferenceSession.isFunctionalTypeMoreSpecificOnExpression(InferenceSession.java:1753)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isFunctionalTypeMoreSpecific(JavaMethodsConflictResolver.java:761)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isTypeMoreSpecific(JavaMethodsConflictResolver.java:655)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.access$000(JavaMethodsConflictResolver.java:44)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver$1.isApplicable(JavaMethodsConflictResolver.java:637)
        at com.intellij.psi.util.PsiUtil.getApplicabilityLevel(PsiUtil.java:550)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isApplicableTo(JavaMethodsConflictResolver.java:640)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isMoreSpecific(JavaMethodsConflictResolver.java:530)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.checkSpecifics(JavaMethodsConflictResolver.java:161)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.guardedOverloadResolution(JavaMethodsConflictResolver.java:108)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.lambda$resolveConflict$0(JavaMethodsConflictResolver.java:72)
        at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.resolveConflict(JavaMethodsConflictResolver.java:72)
        at com.intellij.psi.scope.processor.ConflictFilterProcessor.getResult(ConflictFilterProcessor.java:91)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.resolveToMethod(PsiReferenceExpressionImpl.java:325)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.resolve(PsiReferenceExpressionImpl.java:298)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.access$000(PsiReferenceExpressionImpl.java:58)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl$OurGenericsResolver.resolve(PsiReferenceExpressionImpl.java:200)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl$OurGenericsResolver.resolve(PsiReferenceExpressionImpl.java:189)
        at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$1(ResolveCache.java:197)
        at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
        at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:196)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:724)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:715)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.multiResolve(PsiReferenceExpressionImpl.java:366)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.advancedResolve(PsiReferenceExpressionImpl.java:538)
        at com.intellij.psi.impl.source.tree.java.PsiMethodCallExpressionImpl.resolveMethodGenerics(PsiMethodCallExpressionImpl.java:65)
        at com.intellij.psi.PsiDiamondType.getDiamondsAwareResolveResult(PsiDiamondType.java:193)
        at com.intellij.psi.LambdaUtil.getFunctionalInterfaceType(LambdaUtil.java:396)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.getFunctionalInterfaceType(PsiMethodReferenceExpressionImpl.java:72)
        at com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.getInterfaceType(MethodReferenceResolver.java:188)
        at com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.resolve(MethodReferenceResolver.java:61)
        at com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.resolve(MethodReferenceResolver.java:43)
        at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$1(ResolveCache.java:197)
        at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
        at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:196)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:724)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:715)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.multiResolve(PsiMethodReferenceExpressionImpl.java:263)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.advancedResolve(PsiMethodReferenceExpressionImpl.java:477)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.resolve(PsiMethodReferenceExpressionImpl.java:454)
        at org.jetbrains.uast.java.JavaUCallableReferenceExpression.<init>(JavaUCallableReferenceExpression.kt:38)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$3$13.invoke(JavaUastLanguagePlugin.kt:256)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$3$13.invoke(JavaUastLanguagePlugin.kt:145)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$2$1.invoke(JavaUastLanguagePlugin.kt:214)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$2$1.invoke(JavaUastLanguagePlugin.kt:145)
        at org.jetbrains.uast.java.JavaConverter.convertExpression$uast_java(JavaUastLanguagePlugin.kt:364)
        at org.jetbrains.uast.java.JavaConverter.convertExpression$uast_java$default(JavaUastLanguagePlugin.kt:209)
        at org.jetbrains.uast.java.JavaConverter.convertOrEmpty$uast_java(JavaUastLanguagePlugin.kt:331)
        at org.jetbrains.uast.java.JavaUCallExpression$valueArguments$2.invoke(javaUCallExpressions.kt:41)
        at org.jetbrains.uast.java.JavaUCallExpression$valueArguments$2.invoke(javaUCallExpressions.kt:24)
        at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:154)
        at org.jetbrains.uast.java.JavaUCallExpression.getValueArguments(javaUCallExpressions.kt)
        at org.jetbrains.uast.UCallExpression$DefaultImpls.accept(UCallExpression.kt:103)
        at org.jetbrains.uast.java.JavaUCallExpression.accept(javaUCallExpressions.kt:24)
        at org.jetbrains.uast.UQualifiedReferenceExpression$DefaultImpls.accept(UQualifiedReferenceExpression.kt:48)
        at org.jetbrains.uast.java.JavaUCompositeQualifiedExpression.accept(JavaUCompositeQualifiedExpression.kt:22)
        at org.jetbrains.uast.UVariableKt.visitContents(UVariable.kt:66)
        at org.jetbrains.uast.UVariableKt.access$visitContents(UVariable.kt:1)
        at org.jetbrains.uast.ULocalVariable$DefaultImpls.accept(UVariable.kt:104)
        at org.jetbrains.uast.java.JavaULocalVariable.accept(JavaUVariable.kt:89)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UDeclarationsExpression$DefaultImpls.accept(UDeclarationsExpression.kt:36)
        at org.jetbrains.uast.java.JavaUDeclarationsExpression.accept(JavaUDeclarationsExpression.kt:21)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UBlockExpression$DefaultImpls.accept(UBlockExpression.kt:35)
        at org.jetbrains.uast.java.JavaUCodeBlockExpression.accept(JavaUCodeBlockExpression.kt:22)
        at org.jetbrains.uast.UMethod$DefaultImpls.accept(UMethod.kt:53)
        at org.jetbrains.uast.java.JavaUMethod.accept(JavaUMethod.kt:25)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UClass$DefaultImpls.accept(UClass.kt:63)
        at org.jetbrains.uast.java.AbstractJavaUClass.accept(JavaUClass.kt:26)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UFile$DefaultImpls.accept(UFile.kt:91)
        at org.jetbrains.uast.java.JavaUFile.accept(JavaUFile.kt:24)
        at com.android.tools.lint.client.api.UElementVisitor$visitFile$2.run(UElementVisitor.kt:247)
        at com.android.tools.lint.client.api.LintClient.runReadAction(LintClient.kt:1451)
        at com.android.tools.lint.client.api.LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:1913)
        at com.android.tools.lint.client.api.UElementVisitor.visitFile(UElementVisitor.kt:245)
        at com.android.tools.lint.client.api.LintDriver$visitJavaFiles$1.run(LintDriver.kt:1489)
        at com.android.tools.lint.client.api.LintClient.runReadAction(LintClient.kt:1451)
        at com.android.tools.lint.client.api.LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:1913)
        at com.android.tools.lint.client.api.LintDriver.visitJavaFiles(LintDriver.kt:1489)
        at com.android.tools.lint.client.api.LintDriver.visitJavaFiles(LintDriver.kt:1458)
        at com.android.tools.lint.client.api.LintDriver.checkJava(LintDriver.kt:1436)
        at com.android.tools.lint.client.api.LintDriver.runFileDetectors(LintDriver.kt:975)
        at com.android.tools.lint.client.api.LintDriver.checkProject(LintDriver.kt:815)
        at com.android.tools.lint.client.api.LintDriver.analyze(LintDriver.kt:347)
        at com.android.tools.lint.LintCliClient.run(LintCliClient.java:207)
        at com.android.tools.lint.gradle.LintGradleClient.run(LintGradleClient.java:258)
        at com.android.tools.lint.gradle.LintGradleExecution.runLint(LintGradleExecution.java:257)
        at com.android.tools.lint.gradle.LintGradleExecution.lintSingleVariant(LintGradleExecution.java:361)
        at com.android.tools.lint.gradle.LintGradleExecution.analyze(LintGradleExecution.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.android.tools.lint.gradle.api.ReflectiveLintRunner.runLint(ReflectiveLintRunner.kt:38)
        at com.android.build.gradle.tasks.LintBaseTask.runLint(LintBaseTask.java:87)
        at com.android.build.gradle.tasks.LintPerVariantTask.lint(LintPerVariantTask.java:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:788)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:755)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)
java.lang.NullPointerException
        at com.intellij.psi.impl.compiled.ClsFileImpl.getMirror(ClsFileImpl.java:393)
        at com.intellij.psi.impl.compiled.ClsElementImpl.getMirror(ClsElementImpl.java:159)
        at com.intellij.psi.impl.compiled.ClsElementImpl.getText(ClsElementImpl.java:202)
        at com.intellij.psi.impl.source.resolve.graphInference.InferenceSession.argConstraints(InferenceSession.java:1841)
        at com.intellij.psi.impl.source.resolve.graphInference.InferenceSession.isFunctionalTypeMoreSpecific(InferenceSession.java:1772)
        at com.intellij.psi.impl.source.resolve.graphInference.InferenceSession.isFunctionalTypeMoreSpecificOnExpression(InferenceSession.java:1753)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isFunctionalTypeMoreSpecific(JavaMethodsConflictResolver.java:761)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isTypeMoreSpecific(JavaMethodsConflictResolver.java:655)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.access$000(JavaMethodsConflictResolver.java:44)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver$1.isApplicable(JavaMethodsConflictResolver.java:637)
        at com.intellij.psi.util.PsiUtil.getApplicabilityLevel(PsiUtil.java:550)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isApplicableTo(JavaMethodsConflictResolver.java:640)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.isMoreSpecific(JavaMethodsConflictResolver.java:530)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.checkSpecifics(JavaMethodsConflictResolver.java:161)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.guardedOverloadResolution(JavaMethodsConflictResolver.java:108)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.lambda$resolveConflict$0(JavaMethodsConflictResolver.java:72)
        at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
        at com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver.resolveConflict(JavaMethodsConflictResolver.java:72)
        at com.intellij.psi.scope.processor.ConflictFilterProcessor.getResult(ConflictFilterProcessor.java:91)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.resolveToMethod(PsiReferenceExpressionImpl.java:325)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.resolve(PsiReferenceExpressionImpl.java:298)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.access$000(PsiReferenceExpressionImpl.java:58)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl$OurGenericsResolver.resolve(PsiReferenceExpressionImpl.java:200)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl$OurGenericsResolver.resolve(PsiReferenceExpressionImpl.java:189)
        at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$1(ResolveCache.java:197)
        at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
        at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:196)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:724)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:715)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.multiResolve(PsiReferenceExpressionImpl.java:366)
        at com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl.advancedResolve(PsiReferenceExpressionImpl.java:538)
        at com.intellij.psi.impl.source.tree.java.PsiMethodCallExpressionImpl.resolveMethodGenerics(PsiMethodCallExpressionImpl.java:65)
        at com.intellij.psi.PsiDiamondType.getDiamondsAwareResolveResult(PsiDiamondType.java:193)
        at com.intellij.psi.LambdaUtil.getFunctionalInterfaceType(LambdaUtil.java:396)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.getFunctionalInterfaceType(PsiMethodReferenceExpressionImpl.java:72)
        at com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.getInterfaceType(MethodReferenceResolver.java:188)
        at com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.resolve(MethodReferenceResolver.java:61)
        at com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.resolve(MethodReferenceResolver.java:43)
        at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$1(ResolveCache.java:197)
        at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
        at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:196)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:724)
        at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:715)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.multiResolve(PsiMethodReferenceExpressionImpl.java:263)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.advancedResolve(PsiMethodReferenceExpressionImpl.java:477)
        at com.intellij.psi.impl.source.tree.java.PsiMethodReferenceExpressionImpl.resolve(PsiMethodReferenceExpressionImpl.java:454)
        at org.jetbrains.uast.java.JavaUCallableReferenceExpression.<init>(JavaUCallableReferenceExpression.kt:38)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$3$13.invoke(JavaUastLanguagePlugin.kt:256)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$3$13.invoke(JavaUastLanguagePlugin.kt:145)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$2$1.invoke(JavaUastLanguagePlugin.kt:214)
        at org.jetbrains.uast.java.JavaConverter$convertExpression$2$1.invoke(JavaUastLanguagePlugin.kt:145)
        at org.jetbrains.uast.java.JavaConverter.convertExpression$uast_java(JavaUastLanguagePlugin.kt:364)
        at org.jetbrains.uast.java.JavaConverter.convertExpression$uast_java$default(JavaUastLanguagePlugin.kt:209)
        at org.jetbrains.uast.java.JavaConverter.convertOrEmpty$uast_java(JavaUastLanguagePlugin.kt:331)
        at org.jetbrains.uast.java.JavaUCallExpression$valueArguments$2.invoke(javaUCallExpressions.kt:41)
        at org.jetbrains.uast.java.JavaUCallExpression$valueArguments$2.invoke(javaUCallExpressions.kt:24)
        at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:154)
        at org.jetbrains.uast.java.JavaUCallExpression.getValueArguments(javaUCallExpressions.kt)
        at org.jetbrains.uast.UCallExpression$DefaultImpls.accept(UCallExpression.kt:103)
        at org.jetbrains.uast.java.JavaUCallExpression.accept(javaUCallExpressions.kt:24)
        at org.jetbrains.uast.UQualifiedReferenceExpression$DefaultImpls.accept(UQualifiedReferenceExpression.kt:48)
        at org.jetbrains.uast.java.JavaUCompositeQualifiedExpression.accept(JavaUCompositeQualifiedExpression.kt:22)
        at org.jetbrains.uast.UVariableKt.visitContents(UVariable.kt:66)
        at org.jetbrains.uast.UVariableKt.access$visitContents(UVariable.kt:1)
        at org.jetbrains.uast.ULocalVariable$DefaultImpls.accept(UVariable.kt:104)
        at org.jetbrains.uast.java.JavaULocalVariable.accept(JavaUVariable.kt:89)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UDeclarationsExpression$DefaultImpls.accept(UDeclarationsExpression.kt:36)
        at org.jetbrains.uast.java.JavaUDeclarationsExpression.accept(JavaUDeclarationsExpression.kt:21)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UBlockExpression$DefaultImpls.accept(UBlockExpression.kt:35)
        at org.jetbrains.uast.java.JavaUCodeBlockExpression.accept(JavaUCodeBlockExpression.kt:22)
        at org.jetbrains.uast.UMethod$DefaultImpls.accept(UMethod.kt:53)
        at org.jetbrains.uast.java.JavaUMethod.accept(JavaUMethod.kt:25)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UClass$DefaultImpls.accept(UClass.kt:63)
        at org.jetbrains.uast.java.AbstractJavaUClass.accept(JavaUClass.kt:26)
        at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
        at org.jetbrains.uast.UFile$DefaultImpls.accept(UFile.kt:91)
        at org.jetbrains.uast.java.JavaUFile.accept(JavaUFile.kt:24)
        at com.android.tools.lint.client.api.UElementVisitor$visitFile$2.run(UElementVisitor.kt:247)
        at com.android.tools.lint.client.api.LintClient.runReadAction(LintClient.kt:1451)
        at com.android.tools.lint.client.api.LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:1913)
        at com.android.tools.lint.client.api.UElementVisitor.visitFile(UElementVisitor.kt:245)
        at com.android.tools.lint.client.api.LintDriver$visitJavaFiles$1.run(LintDriver.kt:1489)
        at com.android.tools.lint.client.api.LintClient.runReadAction(LintClient.kt:1451)
        at com.android.tools.lint.client.api.LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:1913)
        at com.android.tools.lint.client.api.LintDriver.visitJavaFiles(LintDriver.kt:1489)
        at com.android.tools.lint.client.api.LintDriver.visitJavaFiles(LintDriver.kt:1458)
        at com.android.tools.lint.client.api.LintDriver.checkJava(LintDriver.kt:1436)
        at com.android.tools.lint.client.api.LintDriver.runFileDetectors(LintDriver.kt:975)
        at com.android.tools.lint.client.api.LintDriver.checkProject(LintDriver.kt:815)
        at com.android.tools.lint.client.api.LintDriver.analyze(LintDriver.kt:347)
        at com.android.tools.lint.LintCliClient.run(LintCliClient.java:207)
        at com.android.tools.lint.gradle.LintGradleClient.run(LintGradleClient.java:258)
        at com.android.tools.lint.gradle.LintGradleExecution.runLint(LintGradleExecution.java:257)
        at com.android.tools.lint.gradle.LintGradleExecution.lintSingleVariant(LintGradleExecution.java:361)
        at com.android.tools.lint.gradle.LintGradleExecution.analyze(LintGradleExecution.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.android.tools.lint.gradle.api.ReflectiveLintRunner.runLint(ReflectiveLintRunner.kt:38)
        at com.android.build.gradle.tasks.LintBaseTask.runLint(LintBaseTask.java:87)
        at com.android.build.gradle.tasks.LintPerVariantTask.lint(LintPerVariantTask.java:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:788)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:755)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)


Any pointers on a workaround or a fix ? 

Thanks.

Tor Norbye

unread,
Apr 9, 2018, 8:35:57 PM4/9/18
to lint-dev
Not really. Can you try commenting stuff out in that source file (FluencyParametersDataModelManager.java) to see if you can narrow down what source construct is triggering this?

-- Tor

jvau...@tdsllc.co.uk

unread,
Jun 7, 2018, 8:07:15 AM6/7/18
to lint-dev
Hi,

I have come across this issue in one of my Android projects too. I've narrowed down the call that was causing the problem. I'm using Gradle 4.8, I'm not sure if there's a specific version of the Lint tool I can give you. I'm not entirely clued up on the linting process. I've produced the following test code that generates the error. It is the call to schedule that is the problem:

public class LintTestCase
{
   
private final ScheduledExecutorService mExecutorService;

   
public LintTestCase()
   
{
       
mExecutorService = Executors.newSingleThreadScheduledExecutor();
   
}

   
public void foo()
   
{
       
mExecutorService.schedule(this::initBar, 10, TimeUnit.SECONDS);
   
}

   
private boolean initBar()
   
{
       
//...
        return true;
   
}
}

The error from Gradle is the same as Mona's.

LintTestCase.java: Error: Unexpected failure during lint analysis of LintTestCase.java (this is a bug in lint or one of the libraries it depends on)
 
 
NullPointerException:ClsFileImpl.getMirror(ClsFileImpl.java:393)?ClsElementImpl.getMirror(ClsElementImpl.java:159)?ClsElementImpl.getText(ClsElementImpl.java:202)?InferenceSession.argConstraints(InferenceSession.java:1841)?InferenceSession.isFunctionalTypeMoreSpecific(InferenceSession.java:1772)?InferenceSession.isMoreSpecificInternal(InferenceSession.java:1716)?InferenceSession.lambda$isMoreSpecific$10(InferenceSession.java:1684)?LambdaUtil.performWithSubstitutedParameterBounds(LambdaUtil.java:796)
 

Thanks,
Joseph.

jvau...@tdsllc.co.uk

unread,
Jun 7, 2018, 8:23:06 AM6/7/18
to lint-dev
FWIW, I am actually able to work around this by replacing the method reference with a lambda call. i.e. schedule(()  -> initBar())

Tor Norbye

unread,
Jul 5, 2018, 12:12:38 PM7/5/18
to lint-dev
Thanks for this report! I can reproduce it too. I've filed this bug to track it:

-- Tor
Reply all
Reply to author
Forward
0 new messages