diff options
author | aclement <aclement> | 2006-06-21 11:33:21 +0000 |
---|---|---|
committer | aclement <aclement> | 2006-06-21 11:33:21 +0000 |
commit | 13dde4efd453d32bb4f25781a8fa7aafc2cef850 (patch) | |
tree | aea6550021dad48c59f320ad284f4574b83dd065 /tests/bugs152 | |
parent | 791f8a7c3f37d9b10b8ad1692df998733bbc2f20 (diff) | |
download | aspectj-13dde4efd453d32bb4f25781a8fa7aafc2cef850.tar.gz aspectj-13dde4efd453d32bb4f25781a8fa7aafc2cef850.zip |
test and fix for 147801: rogue bridge methods in a funky configuration.
Diffstat (limited to 'tests/bugs152')
-rw-r--r-- | tests/bugs152/pr147801/Advisor.aj | 8 | ||||
-rw-r--r-- | tests/bugs152/pr147801/Foo.java | 30 | ||||
-rw-r--r-- | tests/bugs152/pr147801/PreparedStatement.java | 3 | ||||
-rw-r--r-- | tests/bugs152/pr147801/aop.xml | 6 | ||||
-rw-r--r-- | tests/bugs152/pr147801/foo.jar | bin | 0 -> 2106 bytes | |||
-rw-r--r-- | tests/bugs152/pr147801/readme.txt | 18 |
6 files changed, 65 insertions, 0 deletions
diff --git a/tests/bugs152/pr147801/Advisor.aj b/tests/bugs152/pr147801/Advisor.aj new file mode 100644 index 000000000..ac09aafc6 --- /dev/null +++ b/tests/bugs152/pr147801/Advisor.aj @@ -0,0 +1,8 @@ +public aspect Advisor { + + before(): staticinitialization(*oo) { + System.err.println("x"); + } + + declare parents: Foo implements java.io.Serializable; +} diff --git a/tests/bugs152/pr147801/Foo.java b/tests/bugs152/pr147801/Foo.java new file mode 100644 index 000000000..b9272c802 --- /dev/null +++ b/tests/bugs152/pr147801/Foo.java @@ -0,0 +1,30 @@ +import java.lang.reflect.Method; + +public class Foo implements PreparedStatement { + + public static void main(String []argv) throws Exception { + new Foo().getParameterMetaData(); + Method[] m = Foo.class.getMethods(); + int count = 1; + for (int i = 0; i < m.length; i++) { + Method method = m[i]; + if (method.toString().indexOf("Foo.getParameterMetaData")!=-1) + System.err.println((count++)+") "+method); + } + } + public Sub getParameterMetaData() throws MyException { + return null; + } +} + +class Sub {} + +interface PreparedStatement { +// public ParameterMetaData getParameterMetaData() throws MyException; +} + +class MyException extends Exception {} + +interface ParameterMetaData {} + +interface SubParameterMetaData extends ParameterMetaData {} diff --git a/tests/bugs152/pr147801/PreparedStatement.java b/tests/bugs152/pr147801/PreparedStatement.java new file mode 100644 index 000000000..7e6ba2547 --- /dev/null +++ b/tests/bugs152/pr147801/PreparedStatement.java @@ -0,0 +1,3 @@ +interface PreparedStatement { + public ParameterMetaData getParameterMetaData() throws MyException; +} diff --git a/tests/bugs152/pr147801/aop.xml b/tests/bugs152/pr147801/aop.xml new file mode 100644 index 000000000..5e193b9f6 --- /dev/null +++ b/tests/bugs152/pr147801/aop.xml @@ -0,0 +1,6 @@ +<aspectj> + <weaver options="-verbose"/> + <aspects> + <aspect name="Advisor"/> + </aspects> +</aspectj> diff --git a/tests/bugs152/pr147801/foo.jar b/tests/bugs152/pr147801/foo.jar Binary files differnew file mode 100644 index 000000000..45155705d --- /dev/null +++ b/tests/bugs152/pr147801/foo.jar diff --git a/tests/bugs152/pr147801/readme.txt b/tests/bugs152/pr147801/readme.txt new file mode 100644 index 000000000..28e5daad5 --- /dev/null +++ b/tests/bugs152/pr147801/readme.txt @@ -0,0 +1,18 @@ +to rebuild foo.jar: + + +Build Foo.java - it includes a definition of PreparedStatement with no method specified + +mkdir out +javac -d out Foo.java + +Build a new PreparedStatement that includes the method + +javac -d out PreparedStatement.java + +Build the jar + +cd out +jar -cvMf ../foo.jar * + +You now have a jar where the Foo.class contains an invalid override... |