[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-dev] UnsupportedOperationException thrown: unable to parameterize unresolved type: Pjava/util/List<+Ljava/lang/Object; >;
|
Compiler exceptions are definitely bugs.
I reproduced this in HEAD and in code style (below).
Please submit at
http://dev.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
Thanks for pointing this out. (Not sure if the code is correct.)
Wes
------------- Main.java
import java.util.ArrayList;
import java.util.List;
public class Main {
public List<? extends Element> getElements() {
return new ArrayList<Element>();
}
class Element {};
static abstract aspect Base<T> {
List<? extends T> around() : call(List<? extends T> *.*(..)) {
return (List<? extends T>) proceed();
}
}
static aspect Concrete extends Base<Element> {}
public static void main(String[] args) {
new Main().getElements();
}
}
> ------------Original Message------------
> From: Adam Smyczek <adamsmyczek@xxxxxxxxx>
> To: aspectj-dev@xxxxxxxxxxx
> Date: Wed, Oct-18-2006 5:25 PM
> Subject: [aspectj-dev] UnsupportedOperationException thrown: unable to parameterize unresolved type: Pjava/util/List<+Ljava/lang/Object; >;
>
> Hi all,
>
> I am getting:
>
> java.lang.UnsupportedOperationException
> at org.aspectj.weaver.UnresolvedType.parameterize(UnresolvedType.java:
> 220)
> at org.aspectj.weaver.patterns.ExactTypePattern.parameterizeWith
> (ExactTypePattern.java:244)
> at org.aspectj.weaver.patterns.SignaturePattern.parameterizeWith
> (SignaturePattern.java:265)
> at org.aspectj.weaver.patterns.KindedPointcut.parameterizeWith
> (KindedPointcut.java:381)
> at org.aspectj.weaver.bcel.BcelAdvice.parameterizeWith
> (BcelAdvice.java:93)
> at org.aspectj.weaver.ResolvedType.getDeclaredAdvice
> (ResolvedType.java:710)
> at org.aspectj.weaver.ResolvedType.getDeclaredShadowMungers
> (ResolvedType.java:739)
> at org.aspectj.weaver.ResolvedType.collectShadowMungers
> (ResolvedType.java:575)
> at org.aspectj.weaver.ResolvedType.collectCrosscuttingMembers
> (ResolvedType.java:504)
> at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect
> (CrosscuttingMembersSet.java:68)
> at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect
> (CrosscuttingMembersSet.java:57)
> at org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave(BcelWeaver.java:
> 450)
> at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave
> (AjCompilerAdapter.java:299)
> at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling
> (AjCompilerAdapter.java:192)
> at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc
> $afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2
> $f9cc9ca0(CompilerAdapter.aj:70)
> at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile
> (Compiler.java:367)
> at
> org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation
> (AjBuildManager.java:887)
> at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
> (AjBuildManager.java:244)
> at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild
> (AjBuildManager.java:163)
> at org.aspectj.ajde.internal.CompilerAdapter.compile
> (CompilerAdapter.java:122)
> at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run
> (AspectJBuildManager.java:191)
>
> UnsupportedOperationException thrown: unable to parameterize
> unresolved type: Pjava/util/List<+Ljava/lang/Object;>;
>
> To reproduce this, please compile the following code:
>
> import java.util.ArrayList;
> import java.util.List;
>
> import org.aspectj.lang.ProceedingJoinPoint;
> import org.aspectj.lang.annotation.Around;
> import org.aspectj.lang.annotation.Aspect;
>
> public class Main {
>
> public List<? extends Element> getElements() {
> return new ArrayList<Element>();
> }
>
> class Element {};
>
> @Aspect
> static abstract class Base<T> {
> @Around("call(List<? extends T> *.*(..))")
> public List<? extends T> elementList(ProceedingJoinPoint
> thisJoinPoint) {
> try {
> return (List<? extends T>)thisJoinPoint.proceed();
> } catch (Throwable e) {
> throw new RuntimeException(e);
> }
> }
> }
>
> @Aspect
> static class Concrete extends Base<Element> {}
>
> public static void main(String[] args) {
> new Main().getElements();
> }
>
> }
>
> Is something wrong with my generic type declaration or is this a bug?
>
> Thanks,
> Adam
>
>
> _______________________________________________
> aspectj-dev mailing list
> aspectj-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>