diff -r c2386b2f53d0 -r e499b0dddd12 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Apr 15 15:30:53 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Fri May 24 18:04:55 2013 +0200 @@ -23,6 +23,7 @@ import java.io.StringWriter; import java.io.Writer; import java.lang.annotation.AnnotationTypeMismatchException; +import java.lang.annotation.IncompleteAnnotationException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; @@ -246,7 +247,7 @@ w.append(type).append("(e));\n"); } else if (isEnum[0]) { w.append(" this.prop_").append(pn); - w.append(".add("); + w.append(".add(e == null ? null : "); w.append(type).append(".valueOf((String)e));\n"); } else { if (isPrimitive(type)) { @@ -262,7 +263,7 @@ } else { if (isEnum[0]) { w.append(" this.prop_").append(pn); - w.append(" = "); + w.append(" = ret[" + cnt + "] == null ? null : "); w.append(type).append(".valueOf((String)ret[" + cnt + "]);\n"); } else if (isPrimitive(type)) { w.append(" this.prop_").append(pn); @@ -1146,7 +1147,8 @@ String sep = ""; for (Prprt p : props) { w.write(sep); - w.append(" sb.append(\"" + p.name() + ": \");\n"); + w.append(" sb.append('\"').append(\"" + p.name() + "\")"); + w.append(".append('\"').append(\":\");\n"); w.append(" sb.append(org.apidesign.bck2brwsr.htmlpage.ConvertTypes.toJSON(prop_"); w.append(p.name()).append("));\n"); sep = " sb.append(',');\n"; @@ -1341,7 +1343,7 @@ String typeName(ProcessingEnvironment env) { try { return p.type().getName(); - } catch (AnnotationTypeMismatchException ex) { + } catch (IncompleteAnnotationException | AnnotationTypeMismatchException ex) { for (Object v : getAnnoValues(env)) { String s = v.toString().replace(" ", ""); if (s.startsWith("type=") && s.endsWith(".class")) {