-
Bug
-
Resolution: Tracked Elsewhere
-
Low
-
4.1.2
-
None
-
None
-
Severity 2 - Major
If a type argument for a parameterized type has an annotation, clover fails with the following error:
22-Dec-2016 23:45:34 com.atlassian.clover.api.CloverException: ...Test.java:43:56:unexpected token: @ 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.Instrumenter.instrument(Instrumenter.java:161) 22-Dec-2016 23:45:34 at com.atlassian.clover.CloverInstr.execute(CloverInstr.java:76) 22-Dec-2016 23:45:34 at com.atlassian.clover.CloverInstr.mainImpl(CloverInstr.java:54) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.internal.instrumentation.AbstractInstrumenter.instrumentSources(AbstractInstrumenter.java:197) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.internal.instrumentation.AbstractInstrumenter.instrument(AbstractInstrumenter.java:72) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.CloverInstrumentInternalMojo.execute(CloverInstrumentInternalMojo.java:291) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.CloverSetupMojo.execute(CloverSetupMojo.java:31) 22-Dec-2016 23:45:34 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 22-Dec-2016 23:45:34 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 22-Dec-2016 23:45:34 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 22-Dec-2016 23:45:34 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 22-Dec-2016 23:45:34 at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 22-Dec-2016 23:45:34 at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 22-Dec-2016 23:45:34 at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 22-Dec-2016 23:45:34 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 22-Dec-2016 23:45:34 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 22-Dec-2016 23:45:34 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 22-Dec-2016 23:45:34 at java.lang.reflect.Method.invoke(Method.java:498) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 22-Dec-2016 23:45:34 Caused by: line 43:56: unexpected token: @ 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeArguments(JavaRecognizer.java:1227) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classOrInterfaceType(JavaRecognizer.java:1154) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classTypeSpec(JavaRecognizer.java:1086) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeSpec(JavaRecognizer.java:1048) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.parameterDeclaration(JavaRecognizer.java:3536) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.parameterDeclarationList(JavaRecognizer.java:2706) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.field(JavaRecognizer.java:2370) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classBlock(JavaRecognizer.java:1857) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classDefinition(JavaRecognizer.java:865) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeDefinition2(JavaRecognizer.java:795) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeDefinition(JavaRecognizer.java:648) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.compilationUnit(JavaRecognizer.java:566) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.Instrumenter.instrument(Instrumenter.java:213) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.Instrumenter.instrument(Instrumenter.java:126) 22-Dec-2016 23:45:34 ... 28 more
The code causing this is:
@Property public void testFooBar(ArrayList<@From(Files.class) File> files) throws Exception {
- duplicates
-
CLOV-1839 Provide instrumentation support for Annotations in all places Java 8 allows to
- Closed
[CLOV-1979] com.atlassian.clover.api.CloverException: unexpected token: @ for type arguments with annoations
Security | Original: Reporter and Atlassian Staff [ 10751 ] |
Fix Version/s | New: n/a [ 56133 ] | |
Resolution | New: Tracked Elsewhere [ 15 ] | |
Status | Original: Open [ 1 ] | New: Closed [ 6 ] |
Description |
Original:
If a type argument for a parameterized type has an annotation, clover fails with the following error:
|
New:
If a type argument for a parameterized type has an annotation, clover fails with the following error:
{code:java} 22-Dec-2016 23:45:34 com.atlassian.clover.api.CloverException: ...Test.java:43:56:unexpected token: @ 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.Instrumenter.instrument(Instrumenter.java:161) 22-Dec-2016 23:45:34 at com.atlassian.clover.CloverInstr.execute(CloverInstr.java:76) 22-Dec-2016 23:45:34 at com.atlassian.clover.CloverInstr.mainImpl(CloverInstr.java:54) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.internal.instrumentation.AbstractInstrumenter.instrumentSources(AbstractInstrumenter.java:197) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.internal.instrumentation.AbstractInstrumenter.instrument(AbstractInstrumenter.java:72) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.CloverInstrumentInternalMojo.execute(CloverInstrumentInternalMojo.java:291) 22-Dec-2016 23:45:34 at com.atlassian.maven.plugin.clover.CloverSetupMojo.execute(CloverSetupMojo.java:31) 22-Dec-2016 23:45:34 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 22-Dec-2016 23:45:34 at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 22-Dec-2016 23:45:34 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 22-Dec-2016 23:45:34 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 22-Dec-2016 23:45:34 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 22-Dec-2016 23:45:34 at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 22-Dec-2016 23:45:34 at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 22-Dec-2016 23:45:34 at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 22-Dec-2016 23:45:34 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 22-Dec-2016 23:45:34 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 22-Dec-2016 23:45:34 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 22-Dec-2016 23:45:34 at java.lang.reflect.Method.invoke(Method.java:498) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 22-Dec-2016 23:45:34 at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 22-Dec-2016 23:45:34 Caused by: line 43:56: unexpected token: @ 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeArguments(JavaRecognizer.java:1227) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classOrInterfaceType(JavaRecognizer.java:1154) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classTypeSpec(JavaRecognizer.java:1086) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeSpec(JavaRecognizer.java:1048) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.parameterDeclaration(JavaRecognizer.java:3536) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.parameterDeclarationList(JavaRecognizer.java:2706) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.field(JavaRecognizer.java:2370) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classBlock(JavaRecognizer.java:1857) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.classDefinition(JavaRecognizer.java:865) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeDefinition2(JavaRecognizer.java:795) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.typeDefinition(JavaRecognizer.java:648) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.JavaRecognizer.compilationUnit(JavaRecognizer.java:566) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.Instrumenter.instrument(Instrumenter.java:213) 22-Dec-2016 23:45:34 at com.atlassian.clover.instr.java.Instrumenter.instrument(Instrumenter.java:126) 22-Dec-2016 23:45:34 ... 28 more {code} The code causing this is: {code:java} @Property public void testFooBar(ArrayList<@From(Files.class) File> files) throws Exception { {code} |
Affects Version/s | New: 4.1.2 [ 62198 ] |
Description |
New:
If a type argument for a parameterized type has an annotation, clover fails with the following error:
|
Security | New: Reporter and Atlassian Staff [ 10751 ] |
Hi Stefan,
Thank you for reporting this bug. This is a duplicate of a feature request:
https://jira.atlassian.com/browse/CLOV-1839
As you can see in the linked issue, I've already made some progress in it (all items marked
are ready), but it still requires polishing extensive testing for side-effects and performance. But you may want to try to build Clover from a branch, if you need this.