aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorchibash <chiba@javassist.org>2019-07-27 14:06:22 +0900
committerchibash <chiba@javassist.org>2019-07-27 14:06:22 +0900
commit8f4788e0907278cec2a094af179451824651a515 (patch)
treebff600908fc0597d8ada77ed8618d8650f082e1c /src/test
parent9076bde17537c059aa679bd6c0324bda78bdb088 (diff)
downloadjavassist-8f4788e0907278cec2a094af179451824651a515.tar.gz
javassist-8f4788e0907278cec2a094af179451824651a515.zip
fixed Issue #263
Diffstat (limited to 'src/test')
-rw-r--r--src/test/Test.java8
-rw-r--r--src/test/javassist/proxyfactory/GenSig.java4
-rw-r--r--src/test/javassist/proxyfactory/ProxyFactoryTest.java11
3 files changed, 20 insertions, 3 deletions
diff --git a/src/test/Test.java b/src/test/Test.java
index 9907406d..45f74c26 100644
--- a/src/test/Test.java
+++ b/src/test/Test.java
@@ -44,9 +44,11 @@ public class Test {
final CtClass ctClass = classPool.get(INVALID_STACK_MAP_FRAME);
final CtMethod method = ctClass.getDeclaredMethod("bytecodeVerifyError");
- method.addLocalVariable("test_localVariable", CtClass.intType);
- method.insertBefore("{ test_localVariable = 1; }");
- ctClass.debugWriteFile();
+ // method.addLocalVariable("test_localVariable", CtClass.intType);
+ method.insertBefore("{ java.math.BigDecimal d = null; d.divide(d); }");
+ //ctClass.debugWriteFile();
+ System.out.println("ok");
+ ctClass.writeFile();
Class<?> cc = ctClass.toClass();
System.out.println(cc.getName());
InvalidStackMapFrame obj = (InvalidStackMapFrame)cc.getDeclaredConstructor().newInstance();
diff --git a/src/test/javassist/proxyfactory/GenSig.java b/src/test/javassist/proxyfactory/GenSig.java
new file mode 100644
index 00000000..018cdb39
--- /dev/null
+++ b/src/test/javassist/proxyfactory/GenSig.java
@@ -0,0 +1,4 @@
+package javassist.proxyfactory;
+
+class GenSig<T> {
+}
diff --git a/src/test/javassist/proxyfactory/ProxyFactoryTest.java b/src/test/javassist/proxyfactory/ProxyFactoryTest.java
index c69acc9d..0997620f 100644
--- a/src/test/javassist/proxyfactory/ProxyFactoryTest.java
+++ b/src/test/javassist/proxyfactory/ProxyFactoryTest.java
@@ -152,4 +152,15 @@ public class ProxyFactoryTest extends TestCase {
}
});
}
+
+ // Issue #263
+ public void testGenericSignature() throws Exception {
+ ProxyFactory factory = new ProxyFactory();
+ factory.setSuperclass(GenSig.class);
+ factory.setGenericSignature("Ljavassist/proxyfactory/GenSig<Ljava/lang/Integer;>;");
+ GenSig gs = (GenSig)factory.create(null, null);
+ java.lang.reflect.Type[] x = ((java.lang.reflect.ParameterizedType)gs.getClass().getGenericSuperclass())
+ .getActualTypeArguments();
+ assertEquals(Integer.class, x[0]);
+ }
}