From e22244ba499571a43caf518567cba3717e4b5ce3 Mon Sep 17 00:00:00 2001 From: mwebster Date: Tue, 11 Jul 2006 12:57:44 +0000 Subject: [PATCH] Testcases for 145442 "The line number is missing for an advised class." --- tests/bugs153/pr145442/hello/HelloWorld.java | 44 +++++++++++++++++++ .../pr145442/hello/ThrowExceptionAfter.aj | 8 ++++ .../pr145442/hello/ThrowExceptionAround.aj | 8 ++++ .../pr145442/hello/ThrowExceptionBefore.aj | 8 ++++ .../systemtest/ajc153/Ajc153Tests.java | 4 +- .../org/aspectj/systemtest/ajc153/ajc153.xml | 40 +++++++++++++++-- 6 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 tests/bugs153/pr145442/hello/HelloWorld.java create mode 100644 tests/bugs153/pr145442/hello/ThrowExceptionAfter.aj create mode 100644 tests/bugs153/pr145442/hello/ThrowExceptionAround.aj create mode 100644 tests/bugs153/pr145442/hello/ThrowExceptionBefore.aj diff --git a/tests/bugs153/pr145442/hello/HelloWorld.java b/tests/bugs153/pr145442/hello/HelloWorld.java new file mode 100644 index 000000000..a2bb9b072 --- /dev/null +++ b/tests/bugs153/pr145442/hello/HelloWorld.java @@ -0,0 +1,44 @@ +package hello; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintStream; + +public class HelloWorld { + + public void println () { + System.out.println("Hello World!"); + } + + private void testStackTrace () throws IOException { + try { + println(); + } + catch (Exception ex) { + printRelevantStackEntries(ex,getClass().getName()); + } + } + + private static void printRelevantStackEntries (Exception ex, String className) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintStream ps = new PrintStream(baos); + ex.printStackTrace(ps); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + BufferedReader br = new BufferedReader(new InputStreamReader(bais)); + String entry; + while ((entry = br.readLine()) != null) { + if (entry.indexOf(className) != -1) { + System.err.println(entry); + } + } + } + + public static void main(String[] args) throws Exception { + new HelloWorld().testStackTrace(); + } + +} diff --git a/tests/bugs153/pr145442/hello/ThrowExceptionAfter.aj b/tests/bugs153/pr145442/hello/ThrowExceptionAfter.aj new file mode 100644 index 000000000..f9d58fb11 --- /dev/null +++ b/tests/bugs153/pr145442/hello/ThrowExceptionAfter.aj @@ -0,0 +1,8 @@ +package hello; + +public aspect ThrowExceptionAfter { + + after () : execution(public void println()) { + throw new UnsupportedOperationException(); + } +} diff --git a/tests/bugs153/pr145442/hello/ThrowExceptionAround.aj b/tests/bugs153/pr145442/hello/ThrowExceptionAround.aj new file mode 100644 index 000000000..a30cf0ec4 --- /dev/null +++ b/tests/bugs153/pr145442/hello/ThrowExceptionAround.aj @@ -0,0 +1,8 @@ +package hello; + +public aspect ThrowExceptionAround { + + void around () : execution(public void println()) { + throw new UnsupportedOperationException(); + } +} diff --git a/tests/bugs153/pr145442/hello/ThrowExceptionBefore.aj b/tests/bugs153/pr145442/hello/ThrowExceptionBefore.aj new file mode 100644 index 000000000..f4dc9cb2c --- /dev/null +++ b/tests/bugs153/pr145442/hello/ThrowExceptionBefore.aj @@ -0,0 +1,8 @@ +package hello; + +public aspect ThrowExceptionBefore { + + before () : execution(public void println()) { + throw new UnsupportedOperationException(); + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java b/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java index 9033d2280..4878bb045 100644 --- a/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java @@ -19,7 +19,9 @@ import org.aspectj.testing.XMLBasedAjcTestCase; public class Ajc153Tests extends org.aspectj.testing.XMLBasedAjcTestCase { - // public void testMissingLineNumbersInStacktrace_pr145442() { runTest("missing line numbers in stacktrace");} + public void testMissingLineNumbersInStacktraceBefore_pr145442() { runTest("missing line numbers in stacktrace before");} + public void testMissingLineNumbersInStacktraceAfter_pr145442() { runTest("missing line numbers in stacktrace after");} + public void testMissingLineNumbersInStacktraceAround_pr145442() { runTest("missing line numbers in stacktrace around");} // public void testArgnamesAndJavac_pr148381() { runTest("argNames and javac");} // public void testCFlowXMLAspectLTW_pr149096() { runTest("cflow xml concrete aspect"); } // public void testAmbiguousBinding_pr121805() { runTest("ambiguous binding");} diff --git a/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml b/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml index 89da04f01..a8b4c6034 100644 --- a/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml +++ b/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml @@ -115,9 +115,43 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.39.5