Mercurial > hg > release > icedtea7-forest-2.0 > langtools
changeset 736:ea92d1e275b6
6990133: AnnotationProxyMaker.ValueVisitor$1 contains non-transient non-serializable field
Reviewed-by: darcy
author | jjg |
---|---|
date | Tue, 12 Oct 2010 14:22:55 -0700 |
parents | a1d31ab7b525 |
children | ee366cc698c0 |
files | src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java |
diffstat | 2 files changed, 16 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Tue Oct 12 13:19:47 2010 -0700 +++ b/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Tue Oct 12 14:22:55 2010 -0700 @@ -250,9 +250,13 @@ /** * Sets "value" to an ExceptionProxy indicating a type mismatch. */ - private void typeMismatch(final Method method, final Attribute attr) { - value = new ExceptionProxy() { + private void typeMismatch(Method method, final Attribute attr) { + class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy { private static final long serialVersionUID = 8473323277815075163L; + transient final Method method; + AnnotationTypeMismatchExceptionProxy(Method method) { + this.method = method; + } public String toString() { return "<error>"; // eg: @Anno(value=<error>) } @@ -260,7 +264,8 @@ return new AnnotationTypeMismatchException(method, attr.type.toString()); } - }; + } + value = new AnnotationTypeMismatchExceptionProxy(method); } }
--- a/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java Tue Oct 12 13:19:47 2010 -0700 +++ b/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java Tue Oct 12 14:22:55 2010 -0700 @@ -250,9 +250,13 @@ /** * Sets "value" to an ExceptionProxy indicating a type mismatch. */ - private void typeMismatch(final Method method, final Attribute attr) { - value = new ExceptionProxy() { + private void typeMismatch(Method method, final Attribute attr) { + class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy { static final long serialVersionUID = 269; + transient final Method method; + AnnotationTypeMismatchExceptionProxy(Method method) { + this.method = method; + } public String toString() { return "<error>"; // eg: @Anno(value=<error>) } @@ -260,7 +264,8 @@ return new AnnotationTypeMismatchException(method, attr.type.toString()); } - }; + } + value = new AnnotationTypeMismatchExceptionProxy(method); } }