--- /dev/null
+
+abstract class AbstractAttributeGuiFactory<A,B> {
+
+ public A getThis() {
+ return null;
+ }
+
+ public B getThat() {
+ return null;
+ }
+
+}
+
+class ColorAttributeGuiFactory extends AbstractAttributeGuiFactory<C1,C2> {}
+
+class C1 {}
+
+class C2 {}
+
+aspect ForceParameterization {
+
+
+ before() : call(C1 *(..)) || call(C2 *(..)) {
+ System.out.println("method returning C1 or C2");
+ }
+
+}
+
+public class Pr112880 {
+
+ public static void main(String[] args) {
+ ColorAttributeGuiFactory f = new ColorAttributeGuiFactory();
+ f.getThis();
+ f.getThat();
+ }
+
+}
\ No newline at end of file
<line text="AA.going()"/>
</stdout>
</run>
- </ajc-test>acj
+ </ajc-test>
+ <ajc-test dir="bugs150" pr="112880" title="double parameter generic abstract type">
+ <compile files="Pr112880.aj" options="-1.5">
+ </compile>
+ <run class="Pr112880">
+ <stdout>
+ <line text="method returning C1 or C2"/>
+ <line text="method returning C1 or C2"/>
+ </stdout>
+ </run>
+ </ajc-test>
<ajc-test dir="bugs150/pr114005" title="Annotated ITDFs - 2">
<compile files="Declaration2.java" options="-1.5"/>
private static ReflectionBasedReferenceTypeDelegate create15Delegate(ReferenceType forReferenceType, Class forClass, ClassLoader usingClassLoader, World inWorld) {
try {
- // important that we use *our own* classloader for the next call...
- Class delegateClass = Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate",false,ReflectionBasedReferenceTypeDelegate.class.getClassLoader());
+ Class delegateClass = Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate",false,usingClassLoader);//ReflectionBasedReferenceTypeDelegate.class.getClassLoader());
ReflectionBasedReferenceTypeDelegate ret = (ReflectionBasedReferenceTypeDelegate) delegateClass.newInstance();
ret.initialize(forReferenceType,forClass,usingClassLoader,inWorld);
return ret;
} catch (ClassNotFoundException cnfEx) {
- return null;
+ throw new IllegalStateException("Attempted to create Java 1.5 reflection based delegate but org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate was not found on classpath");
} catch (InstantiationException insEx) {
- return null;
+ throw new IllegalStateException("Attempted to create Java 1.5 reflection based delegate but InstantiationException: " + insEx + " occured");
} catch (IllegalAccessException illAccEx) {
- return null;
+ throw new IllegalStateException("Attempted to create Java 1.5 reflection based delegate but IllegalAccessException: " + illAccEx + " occured");
}
}