diff -r 1b7c8f6cb621 -r b43aaf398748 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Thu Apr 04 09:47:03 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Thu Apr 04 11:45:54 2013 +0200 @@ -48,6 +48,7 @@ import javax.lang.model.type.MirroredTypeException; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Elements; import javax.lang.model.util.Types; import javax.tools.Diagnostic; import javax.tools.FileObject; @@ -451,7 +452,7 @@ final TypeMirror rt = ee.getReturnType(); final Types tu = processingEnv.getTypeUtils(); TypeMirror ert = tu.erasure(rt); - String tn = ert.toString(); + String tn = fqn(ert, ee); boolean array = false; if (tn.equals("java.util.List")) { array = true; @@ -470,7 +471,7 @@ ok = false; } - final String dt = pe.asType().toString(); + final String dt = fqn(pe.asType(), ee); String[] call = toGetSet(dn, dt, false); w.write(" " + dt + " arg" + (++arg) + " = "); w.write(call[0] + "();\n"); @@ -721,7 +722,7 @@ params.append(")"); continue; } - String rn = ve.asType().toString(); + String rn = fqn(ve.asType(), ee); int last = rn.lastIndexOf('.'); if (last >= 0) { rn = rn.substring(last + 1); @@ -799,4 +800,13 @@ } return sb.toString(); } + + private String fqn(TypeMirror pt, Element relative) { + if (pt.getKind() == TypeKind.ERROR) { + final Elements eu = processingEnv.getElementUtils(); + PackageElement pckg = eu.getPackageOf(relative); + return pckg.getQualifiedName() + "." + pt.toString(); + } + return pt.toString(); + } }