A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/5344 below:

16 · Issue #5344 · pmd/pmd · GitHub

Affects PMD Version:

This is happening since pmd v7, but my test version is 7.7.0

Description:

When a field with not well known types are defined as non private field in an object, pmd is not able to analyse the class and breaks. While when the field is declared final, there is no such issue.

Exception Stacktrace:

20:14:25 [ERROR] Parsing failed in ParseLock#doParse()
20:14:27 java.lang.IllegalArgumentException: Invalid type reference for method or ctor type annotation: 16
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.GenericSigBase$LazyMethodType.acceptAnnotationAfterParse (GenericSigBase.java:397)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.TypeAnnotationHelper$TypeAnnotationSetWithReferences.forEach (TypeAnnotationHelper.java:72)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.GenericSigBase$LazyMethodType.doParse (GenericSigBase.java:256)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.GenericSigBase$1.doParse (GenericSigBase.java:54)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.ParseLock.getFinalStatus (ParseLock.java:33)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.ParseLock.ensureParsed (ParseLock.java:22)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.GenericSigBase.ensureParsed (GenericSigBase.java:76)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.GenericSigBase$LazyMethodType.getParameterTypes (GenericSigBase.java:312)
20:14:27     at net.sourceforge.pmd.lang.java.symbols.internal.asm.ExecutableStub.getArity (ExecutableStub.java:83)
20:14:27     at net.sourceforge.pmd.lang.java.types.JMethodSig.getArity (JMethodSig.java:118)
20:14:27     at net.sourceforge.pmd.lang.java.types.TypeOps.areOverrideEquivalent (TypeOps.java:1323)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.OverloadSet$ContextIndependentSet.shouldTakePrecedence (OverloadSet.java:110)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.OverloadSet$ContextIndependentSet.shouldTakePrecedence (OverloadSet.java:98)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.OverloadSet.add (OverloadSet.java:48)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.OverloadSet$ContextIndependentSet.add (OverloadSet.java:122)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.OverloadSet$ContextIndependentSet.add (OverloadSet.java:98)
20:14:27     at java.util.stream.ReduceOps$3ReducingSink.accept (ReduceOps.java:169)
20:14:27     at java.util.stream.ForEachOps$ForEachOp$OfRef.accept (ForEachOps.java:184)
20:14:27     at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
20:14:27     at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:179)
20:14:27     at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1708)
20:14:27     at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
20:14:27     at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
20:14:27     at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:151)
20:14:27     at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:174)
20:14:27     at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
20:14:27     at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
20:14:27     at java.util.stream.ReferencePipeline$7$1.accept (ReferencePipeline.java:276)
20:14:27     at java.util.Iterator.forEachRemaining (Iterator.java:133)
20:14:27     at java.util.Spliterators$IteratorSpliterator.forEachRemaining (Spliterators.java:1939)
20:14:27     at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
20:14:27     at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
20:14:27     at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
20:14:27     at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
20:14:27     at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
20:14:27     at net.sourceforge.pmd.lang.java.types.TypeOps.getMethodsOf (TypeOps.java:1910)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates (MethodInvocMirror.java:73)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates (MethodInvocMirror.java:26)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl (Infer.java:303)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl (Infer.java:281)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback (Infer.java:214)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively (Infer.java:176)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation (PolyResolution.java:263)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx (PolyResolution.java:135)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType (PolyResolution.java:125)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly (LazyTypeResolver.java:358)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit (LazyTypeResolver.java:363)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit (LazyTypeResolver.java:103)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor (ASTMethodCall.java:71)
20:14:27     at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror (AbstractJavaTypeNode.java:51)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror (ASTMethodCall.java:22)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates (MethodInvocMirror.java:68)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates (MethodInvocMirror.java:26)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl (Infer.java:303)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl (Infer.java:281)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback (Infer.java:214)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively (Infer.java:176)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation (PolyResolution.java:263)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx (PolyResolution.java:135)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType (PolyResolution.java:125)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly (LazyTypeResolver.java:358)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit (LazyTypeResolver.java:363)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit (LazyTypeResolver.java:103)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor (ASTMethodCall.java:71)
20:14:27     at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror (AbstractJavaTypeNode.java:51)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror (ASTMethodCall.java:22)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates (MethodInvocMirror.java:68)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates (MethodInvocMirror.java:26)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl (Infer.java:303)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl (Infer.java:281)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback (Infer.java:214)
20:14:27     at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively (Infer.java:176)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation (PolyResolution.java:263)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx (PolyResolution.java:135)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType (PolyResolution.java:125)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly (LazyTypeResolver.java:358)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit (LazyTypeResolver.java:363)
20:14:27     at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit (LazyTypeResolver.java:103)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor (ASTMethodCall.java:71)
20:14:27     at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror (AbstractJavaTypeNode.java:51)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror (ASTMethodCall.java:22)
20:14:27     at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror (AbstractJavaTypeNode.java:39)
20:14:27     at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror (ASTMethodCall.java:22)
20:14:27     at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.lambda$forceTypeResolutionPhase$0 (InternalApiBridge.java:92)
20:14:27     at java.util.Iterator.forEachRemaining (Iterator.java:133)
20:14:27     at net.sourceforge.pmd.lang.ast.internal.IteratorBasedNStream.forEach (IteratorBasedNStream.java:102)
20:14:27     at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.forceTypeResolutionPhase (InternalApiBridge.java:90)
20:14:27     at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$3 (JavaAstProcessor.java:135)
20:14:27     at net.sourceforge.pmd.benchmark.TimeTracker.bench (TimeTracker.java:163)
20:14:27     at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process (JavaAstProcessor.java:135)
20:14:27     at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process (JavaAstProcessor.java:166)
20:14:27     at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process (JavaAstProcessor.java:150)
20:14:27     at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl (JavaParser.java:69)
20:14:27     at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl (JavaParser.java:25)
20:14:27     at net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeParserAdapter.parse (JjtreeParserAdapter.java:36)
20:14:27     at net.sourceforge.pmd.lang.impl.PmdRunnable.parse (PmdRunnable.java:112)
20:14:27     at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource (PmdRunnable.java:132)
20:14:27     at net.sourceforge.pmd.lang.impl.PmdRunnable.run (PmdRunnable.java:80)
20:14:27     at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:572)
20:14:27     at java.util.concurrent.FutureTask.run (FutureTask.java:317)
20:14:27     at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
20:14:27     at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
20:14:27     at java.lang.Thread.run (Thread.java:1583)

Code Sample demonstrating the issue:

import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;

public class TransformationRecorder {
    private Multimap<Integer, Integer> impTransforms = ImmutableMultimap.of();

    public void recordTransformation() {
        impTransforms = MultimapBuilder.hashKeys().hashSetValues(1).build();
    }
}

Running PMD through: [CLI | Ant | Maven | Gradle | Designer | Other]

Maven


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4