1.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/Classes.java Tue Dec 04 14:49:01 2012 +0100
1.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/Classes.java Wed Dec 05 09:28:31 2012 +0100
1.3 @@ -21,6 +21,7 @@
1.4 import java.lang.annotation.Annotation;
1.5 import java.lang.reflect.Method;
1.6 import java.net.MalformedURLException;
1.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.8
1.9 /**
1.10 *
1.11 @@ -79,20 +80,32 @@
1.12 return null;
1.13 }
1.14
1.15 + @JavaScriptBody(args = "msg", body = "throw msg;")
1.16 + private static native void thrw(String msg);
1.17 +
1.18 public static Object reflectiveMethodCall(boolean direct) throws Exception {
1.19 - Method m;
1.20 - /*
1.21 + Method find = null;
1.22 + StringBuilder sb = new StringBuilder();
1.23 if (!direct) {
1.24 final Class<? extends Annotation> v = ClassesMarker.class;
1.25 - for (Method single : Classes.class.getMethods()) {
1.26 - if (single.getAnnotation(v)) {
1.27 - m = single;
1.28 + for (Method m : Classes.class.getMethods()) {
1.29 + sb.append("\n").append(m.getName());
1.30 + if (m.getName().equals("name")) {
1.31 + find = m;
1.32 break;
1.33 }
1.34 +// if (single.getAnnotation(v) != null) {
1.35 +// m = single;
1.36 +// break;
1.37 +// }
1.38 }
1.39 - } else*/ {
1.40 - m = Classes.class.getMethod("name");
1.41 + } else {
1.42 + find = Classes.class.getMethod("name");
1.43 }
1.44 - return m.invoke(null);
1.45 + if (find == null) {
1.46 + thrw(sb.toString());
1.47 + throw new NullPointerException(sb.toString());
1.48 + }
1.49 + return find.invoke(null);
1.50 }
1.51 }