pmd icon indicating copy to clipboard operation
pmd copied to clipboard

[java] [7.0-rc1] Processing errors: Disambiguation pass should resolve everything except qualified ctor calls

Open ben-manes opened this issue 1 year ago • 5 comments

Affects PMD Version: 7.0+

Description: The evaluation is successful but it reports,

> Task :caffeine:pmdMain
/Users/ben/projects/caffeine/caffeine/src/main/java/com/github/benmanes/caffeine/cache/BoundedBuffer.java       -       ContextedRuntimeException: java.lang.IllegalStateException: Disambiguation pass should resolve everything except qualified ctor calls
Exception Context:
        [1:Resolving type of=!debug only! [ClassOrInterfaceType:164:56]PadWriteCounter]
---------------------------------
/Users/ben/projects/caffeine/caffeine/src/main/java/com/github/benmanes/caffeine/cache/BoundedLocalCache.java   -       ContextedRuntimeException: java.lang.IllegalStateException: Disambiguation pass should resolve everything except qualified ctor calls
Exception Context:
        [1:Resolving type of=!debug only! [ClassOrInterfaceType:4598:48]PadDrainStatus]
---------------------------------

Exception Stacktrace:

BoundedBuffer
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.IllegalStateException: Disambiguation pass should resolve everything except qualified ctor calls
Exception Context:
	[1:Resolving type of=!debug only! [ClassOrInterfaceType:164:56]PadWriteCounter]
---------------------------------
	at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:232)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:54)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType.getTypeMirror(ASTClassOrInterfaceType.java:34)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:39)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType.getTypeMirror(ASTClassOrInterfaceType.java:34)
	at net.sourceforge.pmd.lang.java.symbols.internal.ast.AstClassSym.getSuperclassType(AstClassSym.java:234)
	at net.sourceforge.pmd.lang.java.types.ClassTypeImpl.getSuperClass(ClassTypeImpl.java:290)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SuperTypesEnumerator$3.iterable(SuperTypesEnumerator.java:59)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.JavaResolvers.walkSelf(JavaResolvers.java:374)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.JavaResolvers.hidingWalkResolvers(JavaResolvers.java:344)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.JavaResolvers.inheritedMembersResolvers(JavaResolvers.java:316)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymTableFactory.typeBody(SymTableFactory.java:326)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visitTypeDecl(SymbolTableResolver.java:262)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visitTypeDecl(SymbolTableResolver.java:135)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visit(JavaVisitorBase.java:56)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration.acceptVisitor(ASTClassOrInterfaceDeclaration.java:38)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.acceptVisitor(AbstractJavaNode.java:38)
	at net.sourceforge.pmd.lang.ast.AstVisitorBase.visitChildren(AstVisitorBase.java:31)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visitTypeDecl(SymbolTableResolver.java:275)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visitTypeDecl(SymbolTableResolver.java:135)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visit(JavaVisitorBase.java:56)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration.acceptVisitor(ASTClassOrInterfaceDeclaration.java:38)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.acceptVisitor(AbstractJavaNode.java:38)
	at net.sourceforge.pmd.lang.ast.AstVisitorBase.visitChildren(AstVisitorBase.java:31)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visit(SymbolTableResolver.java:226)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visit(SymbolTableResolver.java:135)
	at net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit.acceptVisitor(ASTCompilationUnit.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.acceptVisitor(AbstractJavaNode.java:38)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.traverse(SymbolTableResolver.java:161)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver.traverse(SymbolTableResolver.java:98)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$1(JavaAstProcessor.java:132)
	at net.sourceforge.pmd.benchmark.TimeTracker.bench(TimeTracker.java:163)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:132)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:164)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:148)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:69)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:25)
	at net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeParserAdapter.parse(JjtreeParserAdapter.java:36)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.parse(PmdRunnable.java:112)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:132)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80)
	at net.sourceforge.pmd.lang.impl.MonoThreadProcessor.processFiles(MonoThreadProcessor.java:24)
	at net.sourceforge.pmd.lang.impl.BatchLanguageProcessor.launchAnalysis(BatchLanguageProcessor.java:66)
	at net.sourceforge.pmd.PmdAnalysis.performAnalysisImpl(PmdAnalysis.java:374)
	at net.sourceforge.pmd.PmdAnalysis.performAnalysisImpl(PmdAnalysis.java:317)
	at net.sourceforge.pmd.PmdAnalysis.performAnalysis(PmdAnalysis.java:297)
	at net.sourceforge.pmd.ant.internal.PMDTaskImpl.doTask(PMDTaskImpl.java:127)
	at net.sourceforge.pmd.ant.internal.PMDTaskImpl.execute(PMDTaskImpl.java:231)
	at net.sourceforge.pmd.ant.PMDTask.execute(PMDTask.java:58)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
	at groovy.ant.AntBuilder.performTask(AntBuilder.java:343)
	at groovy.ant.AntBuilder.nodeCompleted(AntBuilder.java:282)
	at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:90)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
	at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:489)
	at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
	at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
	at org.gradle.api.internal.project.antbuilder.AntBuilderDelegate.nodeCompleted(AntBuilderDelegate.java:124)
	at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:160)
	at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:74)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:44)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.runPmd(PmdInvoker.groovy:119)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:94)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.this$dist$invoke$1(PmdInvoker.groovy)
	at org.gradle.api.plugins.quality.internal.PmdInvoker$1.methodMissing(PmdInvoker.groovy)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
	at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:953)
	at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1347)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1270)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)
	at org.gradle.api.plugins.quality.internal.PmdInvoker$1.create(PmdInvoker.groovy:55)
	at org.gradle.api.plugins.quality.internal.PmdInvoker$1.create(PmdInvoker.groovy)
	at org.gradle.internal.SystemProperties.withSystemProperty(SystemProperties.java:123)
	at org.gradle.internal.SystemProperties$withSystemProperty.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:157)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.execute(PmdInvoker.groovy:52)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.execute(PmdInvoker.groovy)
	at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder.lambda$execute$2(DefaultIsolatedAntBuilder.java:158)
	at org.gradle.api.internal.project.antbuilder.ClassPathToClassLoaderCache.withCachedClassLoader(ClassPathToClassLoaderCache.java:135)
	at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder.execute(DefaultIsolatedAntBuilder.java:141)
	at org.gradle.api.plugins.quality.internal.AntWorkAction.execute(AntWorkAction.java:38)
	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
	at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
	at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:96)
	at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:65)
	at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
	at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
	at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalStateException: Disambiguation pass should resolve everything except qualified ctor calls
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.getReferenceEnsureResolved(TypesFromAst.java:234)
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.makeFromClassType(TypesFromAst.java:133)
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.fromAstImpl(TypesFromAst.java:60)
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.fromAst(TypesFromAst.java:53)
	at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.buildTypeFromAstInternal(InternalApiBridge.java:208)
	at net.sourceforge.pmd.lang.java.types.ast.LazyTypeResolver.visitType(LazyTypeResolver.java:173)
	at net.sourceforge.pmd.lang.java.types.ast.LazyTypeResolver.visitType(LazyTypeResolver.java:94)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visitReferenceType(JavaVisitorBase.java:95)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visit(JavaVisitorBase.java:123)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType.acceptVisitor(ASTClassOrInterfaceType.java:159)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	... 133 more
BoundedLocalCache
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.IllegalStateException: Disambiguation pass should resolve everything except qualified ctor calls
Exception Context:
	[1:Resolving type of=!debug only! [ClassOrInterfaceType:4598:48]PadDrainStatus]
---------------------------------
	at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:232)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:54)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType.getTypeMirror(ASTClassOrInterfaceType.java:34)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:39)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType.getTypeMirror(ASTClassOrInterfaceType.java:34)
	at net.sourceforge.pmd.lang.java.symbols.internal.ast.AstClassSym.getSuperclassType(AstClassSym.java:234)
	at net.sourceforge.pmd.lang.java.types.ClassTypeImpl.getSuperClass(ClassTypeImpl.java:290)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SuperTypesEnumerator$3.iterable(SuperTypesEnumerator.java:59)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.JavaResolvers.walkSelf(JavaResolvers.java:374)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.JavaResolvers.hidingWalkResolvers(JavaResolvers.java:344)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.JavaResolvers.inheritedMembersResolvers(JavaResolvers.java:316)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymTableFactory.typeBody(SymTableFactory.java:326)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visitTypeDecl(SymbolTableResolver.java:262)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visitTypeDecl(SymbolTableResolver.java:135)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visit(JavaVisitorBase.java:56)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration.acceptVisitor(ASTClassOrInterfaceDeclaration.java:38)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.acceptVisitor(AbstractJavaNode.java:38)
	at net.sourceforge.pmd.lang.ast.AstVisitorBase.visitChildren(AstVisitorBase.java:31)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visit(SymbolTableResolver.java:226)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.visit(SymbolTableResolver.java:135)
	at net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit.acceptVisitor(ASTCompilationUnit.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.acceptVisitor(AbstractJavaNode.java:38)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver$MyVisitor.traverse(SymbolTableResolver.java:161)
	at net.sourceforge.pmd.lang.java.symbols.table.internal.SymbolTableResolver.traverse(SymbolTableResolver.java:98)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$1(JavaAstProcessor.java:132)
	at net.sourceforge.pmd.benchmark.TimeTracker.bench(TimeTracker.java:163)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:132)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:164)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:148)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:69)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:25)
	at net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeParserAdapter.parse(JjtreeParserAdapter.java:36)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.parse(PmdRunnable.java:112)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:132)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80)
	at net.sourceforge.pmd.lang.impl.MonoThreadProcessor.processFiles(MonoThreadProcessor.java:24)
	at net.sourceforge.pmd.lang.impl.BatchLanguageProcessor.launchAnalysis(BatchLanguageProcessor.java:66)
	at net.sourceforge.pmd.PmdAnalysis.performAnalysisImpl(PmdAnalysis.java:374)
	at net.sourceforge.pmd.PmdAnalysis.performAnalysisImpl(PmdAnalysis.java:317)
	at net.sourceforge.pmd.PmdAnalysis.performAnalysis(PmdAnalysis.java:297)
	at net.sourceforge.pmd.ant.internal.PMDTaskImpl.doTask(PMDTaskImpl.java:127)
	at net.sourceforge.pmd.ant.internal.PMDTaskImpl.execute(PMDTaskImpl.java:231)
	at net.sourceforge.pmd.ant.PMDTask.execute(PMDTask.java:58)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
	at groovy.ant.AntBuilder.performTask(AntBuilder.java:343)
	at groovy.ant.AntBuilder.nodeCompleted(AntBuilder.java:282)
	at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:90)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
	at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:489)
	at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
	at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
	at org.gradle.api.internal.project.antbuilder.AntBuilderDelegate.nodeCompleted(AntBuilderDelegate.java:124)
	at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:160)
	at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:74)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:44)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.runPmd(PmdInvoker.groovy:119)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:94)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.this$dist$invoke$1(PmdInvoker.groovy)
	at org.gradle.api.plugins.quality.internal.PmdInvoker$1.methodMissing(PmdInvoker.groovy)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
	at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:953)
	at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1347)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1270)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)
	at org.gradle.api.plugins.quality.internal.PmdInvoker$1.create(PmdInvoker.groovy:55)
	at org.gradle.api.plugins.quality.internal.PmdInvoker$1.create(PmdInvoker.groovy)
	at org.gradle.internal.SystemProperties.withSystemProperty(SystemProperties.java:123)
	at org.gradle.internal.SystemProperties$withSystemProperty.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:157)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.execute(PmdInvoker.groovy:52)
	at org.gradle.api.plugins.quality.internal.PmdInvoker.execute(PmdInvoker.groovy)
	at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder.lambda$execute$2(DefaultIsolatedAntBuilder.java:158)
	at org.gradle.api.internal.project.antbuilder.ClassPathToClassLoaderCache.withCachedClassLoader(ClassPathToClassLoaderCache.java:135)
	at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder.execute(DefaultIsolatedAntBuilder.java:141)
	at org.gradle.api.plugins.quality.internal.AntWorkAction.execute(AntWorkAction.java:38)
	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
	at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
	at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:96)
	at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:65)
	at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
	at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
	at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalStateException: Disambiguation pass should resolve everything except qualified ctor calls
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.getReferenceEnsureResolved(TypesFromAst.java:234)
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.makeFromClassType(TypesFromAst.java:133)
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.fromAstImpl(TypesFromAst.java:60)
	at net.sourceforge.pmd.lang.java.ast.TypesFromAst.fromAst(TypesFromAst.java:53)
	at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.buildTypeFromAstInternal(InternalApiBridge.java:208)
	at net.sourceforge.pmd.lang.java.types.ast.LazyTypeResolver.visitType(LazyTypeResolver.java:173)
	at net.sourceforge.pmd.lang.java.types.ast.LazyTypeResolver.visitType(LazyTypeResolver.java:94)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visitReferenceType(JavaVisitorBase.java:95)
	at net.sourceforge.pmd.lang.java.ast.JavaVisitorBase.visit(JavaVisitorBase.java:123)
	at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType.acceptVisitor(ASTClassOrInterfaceType.java:159)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	... 127 more

Steps to reproduce:

  1. Checkout Caffeine
  2. Run ./gradlew caffeine:cleanPmdMain caffeine:pmdMain -Dpmd --no-build-cache --console plain

Running PMD through: Gradle This requires workaround in https://github.com/gradle/gradle/issues/24502

ben-manes avatar Mar 26 '23 17:03 ben-manes

Here's a fairly simple test case which reproduce this error:

package net.sourceforge.pmd.lang.java.ast;

import org.junit.jupiter.api.Test;

import net.sourceforge.pmd.lang.java.BaseParserTest;

public class AstGenericDeclarationTest extends BaseParserTest {

    private final static String CODE =
              "public class Foo extends FooParent implements KeyProvider<Foo.Bar> {"
            + "    @Override"
            + "    public Bar getKey() {"
            + "      return Bar.A;"
            + "    }"
            + "  }"
            + "  public class FooParent {"
            + "    public enum Bar {"
            + "      A, B, C"
            + "    }"
            + "  }"
            + "  public interface KeyProvider<K> {"
            + "    K getKey();"
            + "  }";

    @Test
    void test() {
        java.parse(CODE);
    }
}

If the class declaration is changed to use the parent class insted to fetch the enum, then everything works just fine.

implements KeyProvider<FooParent.Bar>

bergander avatar Mar 15 '24 14:03 bergander

Here is another example:

  • PR: https://github.com/jenkinsci/warnings-ng-plugin/pull/1782
  • Compile log: https://github.com/jenkinsci/warnings-ng-plugin/pull/1782/checks?check_run_id=27089938679
  • Parsed Class: https://github.com/jenkinsci/warnings-ng-plugin/blob/2fcf545b501fe5cfbbb052db5ab22360a7046907/plugin/src/main/java/io/jenkins/plugins/analysis/warnings/DuplicateCodeScanner.java

uhafner avatar Jul 05 '24 15:07 uhafner

I'm unsure if this is related or a different failure. I am starting to apply the rules to my test suite. The exception was captured in the html report.

/Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java	
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.IllegalArgumentException:  cannot be a wildcard bound
Exception Context:
	[1:Resolving type of=!debug only! [MethodCall:89:9]new MutableConfiguration()
            .addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<>(
  (truncated)]
	[2:Location=!debug only! /Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java:89:9]
	[3:Resolving type of=!debug only! [MethodCall:89:9]new MutableConfiguration()
            .addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<>(
  (truncated)]
	[4:Location=!debug only! /Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java:89:9]
	[5:Resolving type of=!debug only! [MethodCall:88:13]provider.getCacheManager().createCache("primary",
        new MutableConfiguration()
            .addCacheEntryListenerConf(truncated)]
	[6:Location=!debug only! /Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java:88:13]
---------------------------------
	at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:236)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:54)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:68)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:26)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:303)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:281)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:214)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:176)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:358)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:363)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:103)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:68)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:26)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:303)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:281)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.BaseInvocMirror.getStandaloneCtdecl(BaseInvocMirror.java:74)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getStandaloneType(MethodInvocMirror.java:37)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:887)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:594)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:572)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:396)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:319)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:281)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:214)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:176)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:358)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:363)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:103)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:39)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.lambda$forceTypeResolutionPhase$0(InternalApiBridge.java:92)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at net.sourceforge.pmd.lang.ast.internal.IteratorBasedNStream.forEach(IteratorBasedNStream.java:102)
	at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.forceTypeResolutionPhase(InternalApiBridge.java:90)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$3(JavaAstProcessor.java:135)
	at net.sourceforge.pmd.benchmark.TimeTracker.bench(TimeTracker.java:163)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:135)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:166)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:150)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:69)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:25)
	at net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeParserAdapter.parse(JjtreeParserAdapter.java:36)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.parse(PmdRunnable.java:112)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:132)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException:  cannot be a wildcard bound
	at net.sourceforge.pmd.lang.java.types.TypeSystem.wildcard(TypeSystem.java:648)
	at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:36)
	at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:17)
	at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:977)
	at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:78)
	at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:54)
	at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:977)
	at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.symbols.internal.asm.ExecutableStub.getFormalParameterTypes(ExecutableStub.java:101)
	at net.sourceforge.pmd.lang.java.types.ClassMethodSigImpl.getFormalParameters(ClassMethodSigImpl.java:115)
	at net.sourceforge.pmd.lang.java.types.ClassMethodSigImpl.subst(ClassMethodSigImpl.java:166)
	at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.ground(InferenceContext.java:247)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.lambda$isLambdaCompatible$4(ExprCheckHelper.java:489)
	at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.addInstantiationListener(InferenceContext.java:330)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isLambdaCompatible(ExprCheckHelper.java:484)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:135)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:941)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:899)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:594)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:572)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:396)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:359)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.determineInvocationTypeOrFail(Infer.java:275)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isInvocationCompatible(ExprCheckHelper.java:166)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:155)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:941)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:899)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:594)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:572)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateConstructor(Infer.java:447)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:395)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:359)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.determineInvocationTypeOrFail(Infer.java:275)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isInvocationCompatible(ExprCheckHelper.java:166)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:155)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:941)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:899)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:532)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:396)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:359)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:224)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:176)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:358)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:363)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:103)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	... 63 more

ben-manes avatar Sep 17 '24 06:09 ben-manes

As an update, I've been looking at this but don't have a fix yet. Fwiw this usually happens when you use wildcard imports for a type declared in the current file. If you instead use individual imports for those types, it should go away.

oowekyala avatar Sep 17 '24 08:09 oowekyala

I'm unsure if this is related or a different failure. I am starting to apply the rules to my test suite. The exception was captured in the html report.

/Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java	
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.IllegalArgumentException:  cannot be a wildcard bound
Exception Context:
	[1:Resolving type of=!debug only! [MethodCall:89:9]new MutableConfiguration()
            .addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<>(
  (truncated)]
	[2:Location=!debug only! /Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java:89:9]
	[3:Resolving type of=!debug only! [MethodCall:89:9]new MutableConfiguration()
            .addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<>(
  (truncated)]
	[4:Location=!debug only! /Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java:89:9]
	[5:Resolving type of=!debug only! [MethodCall:88:13]provider.getCacheManager().createCache("primary",
        new MutableConfiguration()
            .addCacheEntryListenerConf(truncated)]
	[6:Location=!debug only! /Users/ben/projects/caffeine/jcache/src/test/java/com/github/benmanes/caffeine/jcache/issues/Issue1065Test.java:88:13]
---------------------------------
	at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:236)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:54)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:68)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:26)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:303)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:281)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:214)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:176)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:358)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:363)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:103)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:68)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:26)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:303)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:281)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.BaseInvocMirror.getStandaloneCtdecl(BaseInvocMirror.java:74)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getStandaloneType(MethodInvocMirror.java:37)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:887)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:594)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:572)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:396)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:319)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:281)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:214)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:176)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:358)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:363)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:103)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:39)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
	at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.lambda$forceTypeResolutionPhase$0(InternalApiBridge.java:92)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at net.sourceforge.pmd.lang.ast.internal.IteratorBasedNStream.forEach(IteratorBasedNStream.java:102)
	at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.forceTypeResolutionPhase(InternalApiBridge.java:90)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$3(JavaAstProcessor.java:135)
	at net.sourceforge.pmd.benchmark.TimeTracker.bench(TimeTracker.java:163)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:135)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:166)
	at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:150)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:69)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:25)
	at net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeParserAdapter.parse(JjtreeParserAdapter.java:36)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.parse(PmdRunnable.java:112)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:132)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException:  cannot be a wildcard bound
	at net.sourceforge.pmd.lang.java.types.TypeSystem.wildcard(TypeSystem.java:648)
	at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:36)
	at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:17)
	at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:977)
	at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:78)
	at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:54)
	at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:977)
	at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:950)
	at net.sourceforge.pmd.lang.java.symbols.internal.asm.ExecutableStub.getFormalParameterTypes(ExecutableStub.java:101)
	at net.sourceforge.pmd.lang.java.types.ClassMethodSigImpl.getFormalParameters(ClassMethodSigImpl.java:115)
	at net.sourceforge.pmd.lang.java.types.ClassMethodSigImpl.subst(ClassMethodSigImpl.java:166)
	at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.ground(InferenceContext.java:247)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.lambda$isLambdaCompatible$4(ExprCheckHelper.java:489)
	at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.addInstantiationListener(InferenceContext.java:330)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isLambdaCompatible(ExprCheckHelper.java:484)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:135)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:941)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:899)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:594)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:572)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:396)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:359)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.determineInvocationTypeOrFail(Infer.java:275)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isInvocationCompatible(ExprCheckHelper.java:166)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:155)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:941)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:899)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:594)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:572)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateConstructor(Infer.java:447)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:395)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:359)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.determineInvocationTypeOrFail(Infer.java:275)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isInvocationCompatible(ExprCheckHelper.java:166)
	at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:155)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:941)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addArgsConstraints(Infer.java:899)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:532)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:416)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:396)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:379)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:359)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:224)
	at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:176)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
	at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:358)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:363)
	at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:103)
	at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
	at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
	... 63 more

This looks like a different bug though

oowekyala avatar Sep 17 '24 08:09 oowekyala