summaryrefslogtreecommitdiffstats
path: root/tests/bugs152
diff options
context:
space:
mode:
authoraclement <aclement>2006-06-21 11:33:21 +0000
committeraclement <aclement>2006-06-21 11:33:21 +0000
commit13dde4efd453d32bb4f25781a8fa7aafc2cef850 (patch)
treeaea6550021dad48c59f320ad284f4574b83dd065 /tests/bugs152
parent791f8a7c3f37d9b10b8ad1692df998733bbc2f20 (diff)
downloadaspectj-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.aj8
-rw-r--r--tests/bugs152/pr147801/Foo.java30
-rw-r--r--tests/bugs152/pr147801/PreparedStatement.java3
-rw-r--r--tests/bugs152/pr147801/aop.xml6
-rw-r--r--tests/bugs152/pr147801/foo.jarbin0 -> 2106 bytes
-rw-r--r--tests/bugs152/pr147801/readme.txt18
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
new file mode 100644
index 000000000..45155705d
--- /dev/null
+++ b/tests/bugs152/pr147801/foo.jar
Binary files differ
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...