123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- public class PR78021 {
-
- protected static Integer counter = new Integer(4);
-
- public static void main(String[] args) throws Exception {
- try {
- doSomething();
- System.err.println("TEST HAS PASSED");
- } catch (Exception e) {
- System.err.println("TEST HAS FAILED: Exception thrown by doSomething: " +e.getMessage());
- throw e;
- }
- }
-
- public static void doSomething() {
- int i = 0;
- while (i++<1) {
- counter=null;
- try {
- counter = new Integer(4);
- // The inclusion of the next line changes the weaving ! If it is included the woven code is wrong and the exception escapes
- if (counter == null) { break; }
- commit();
- } catch (Throwable e) {
- System.err.println("Caught exception " + e);
- } finally {
- System.err.println("In finally block");
- }
- }
- }
-
- protected static void commit() throws MyException {
- System.err.println("Main.commit");
- }
- }
-
- class MyException extends Exception { MyException(String s,String s2) { super(s); } }
-
- aspect SimpleExceptionThrowingAspect {
- pointcut commitOperation() : call (* PR78021+.commit(..));
-
- before() throws MyException : commitOperation() {
- throw new MyException("Dummy My Exception", "55102");
- }
- }
|