@@ -125,7 +125,13 @@ v8::Handle<v8::Value> Java::createJVM(JavaVM** jvm, JNIEnv** env) {
125125 if (clazz == NULL ) {
126126 std::ostringstream errStr;
127127 errStr << " Could not create class " << className.c_str ();
128- return javaExceptionToV8 (env, errStr.str ());
128+ v8::Handle<v8::Value> error = javaExceptionToV8 (env, errStr.str ());
129+
130+ v8::Handle<v8::Value> argv[2 ];
131+ argv[0 ] = error;
132+ argv[1 ] = v8::Undefined ();
133+ v8::Function::Cast (*callback)->Call (v8::Context::GetCurrent ()->Global (), 2 , argv);
134+ return v8::Undefined ();
129135 }
130136 std::list<jobject> constructors = javaReflectionGetConstructors (env, clazz);
131137 jobject method = javaFindBestMatchingConstructor (env, constructors, methodArgTypes);
@@ -163,7 +169,7 @@ v8::Handle<v8::Value> Java::createJVM(JavaVM** jvm, JNIEnv** env) {
163169 if (clazz == NULL ) {
164170 std::ostringstream errStr;
165171 errStr << " Could not create class " << className.c_str ();
166- return javaExceptionToV8 (env, errStr.str ());
172+ return ThrowException ( javaExceptionToV8 (env, errStr.str () ));
167173 }
168174 std::list<jobject> constructors = javaReflectionGetConstructors (env, clazz);
169175 jobject method = javaFindBestMatchingConstructor (env, constructors, methodArgTypes);
0 commit comments