diff options
-rw-r--r-- | javassist.jar | bin | 724931 -> 725109 bytes | |||
-rw-r--r-- | src/main/javassist/bytecode/annotation/Annotation.java | 14 | ||||
-rw-r--r-- | src/main/javassist/bytecode/annotation/AnnotationImpl.java | 4 |
3 files changed, 14 insertions, 4 deletions
diff --git a/javassist.jar b/javassist.jar Binary files differindex 53c4f4da..83712459 100644 --- a/javassist.jar +++ b/javassist.jar diff --git a/src/main/javassist/bytecode/annotation/Annotation.java b/src/main/javassist/bytecode/annotation/Annotation.java index 831960e3..6054f549 100644 --- a/src/main/javassist/bytecode/annotation/Annotation.java +++ b/src/main/javassist/bytecode/annotation/Annotation.java @@ -292,9 +292,17 @@ public class Annotation { public Object toAnnotationType(ClassLoader cl, ClassPool cp) throws ClassNotFoundException, NoSuchClassError { - return AnnotationImpl.make(cl, - MemberValue.loadClass(cl, getTypeName()), - cp, this); + Class clazz = MemberValue.loadClass(cl, getTypeName()); + try { + return AnnotationImpl.make(cl, clazz, cp, this); + } + catch (IllegalArgumentException e) { + /* AnnotationImpl.make() may throw this exception + * when it fails to make a proxy object for some + * reason. + */ + throw new ClassNotFoundException(clazz.getName(), e); + } } /** diff --git a/src/main/javassist/bytecode/annotation/AnnotationImpl.java b/src/main/javassist/bytecode/annotation/AnnotationImpl.java index babac927..672d2f3c 100644 --- a/src/main/javassist/bytecode/annotation/AnnotationImpl.java +++ b/src/main/javassist/bytecode/annotation/AnnotationImpl.java @@ -67,7 +67,9 @@ public class AnnotationImpl implements InvocationHandler { * @return the annotation */ public static Object make(ClassLoader cl, Class clazz, ClassPool cp, - Annotation anon) { + Annotation anon) + throws IllegalArgumentException + { AnnotationImpl handler = new AnnotationImpl(anon, cp, cl); return Proxy.newProxyInstance(cl, new Class[] { clazz }, handler); } |