NPE in bcel.LazyMethodGen when delegating from one ctor to a second that includes a switch.
<compile files="lib.jar,TestAspect.aj,Test.java"/>
<run class="Test"/>
</ajc-test>
+
+ <ajc-test dir="bugs" pr="39479"
+ title="NPE in bcel.LazyMethodGen when delegating from one ctor to a second that includes a switch">
+ <compile files="NewSwitch.java"/>
+ <run class="NewSwitch"/>
+ </ajc-test>
</suite>
--- /dev/null
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.reflect.SourceLocation;
+
+public class NewSwitch {
+ public static void main(String[] args) {
+ new NewSwitch(2);
+ }
+
+ protected NewSwitch() {
+ this(3);
+ }
+
+ protected NewSwitch(int p) {
+ switch (p) {
+ case 3: break;
+ }
+ }
+}
+
+aspect FFDC {
+
+ pointcut initializers( ) : staticinitialization( * ) || initialization( *.new(..) );
+ pointcut methodsAndConstructors( ) : execution(* *(..)) || execution(new(..) );
+ pointcut guarded( ) : initializers( ) || methodsAndConstructors( );
+
+ final pointcut nonStaticContext( Object o ) : this( o );
+
+ after(Object o) throwing(Throwable t) : guarded( ) && nonStaticContext( o ) { }
+
+}
<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd">
<suite>
- <ajc-test dir="bugs" pr="38345" keywords="purejava"
- title="try switch VerifyError, InconsistentStackHeight">
- <compile files="TrySwitch.java"/>
- <run class="TrySwitch"/>
+ <ajc-test dir="bugs" pr="39479"
+ title="NPE in bcel.LazyMethodGen when delegating from one ctor to a second that includes a switch">
+ <compile files="NewSwitch.java"/>
+ <run class="NewSwitch"/>
</ajc-test>
</suite>
\ No newline at end of file