void ExecuteCallbacks(JNIEnv * je) {
	Canvas *theCanvas = Canvas::GetCanvas();
	Callback *callback = theCanvas ? theCanvas->GetNextCallback() : NULL;
	if(callback) {
		jclass cls = je->FindClass("com/adobe/plugins/FastCanvas");
		if (je->ExceptionCheck()) {
		   return;
		}

		jmethodID mid = je->GetStaticMethodID(cls, "executeCallback", "(Ljava/lang/String;ZLjava/lang/String;)V");
		if (je->ExceptionCheck()) {
		   return;
		}

		while(callback) {
			jstring methodID = je->NewStringUTF(callback->callbackID);
			jstring result = je->NewStringUTF(callback->result);
			je->CallStaticVoidMethod( cls, mid, methodID, callback->isError, result);
			//delete the callback we just sent
			theCanvas->PopCallbacks();
			//get the next callback
			callback = theCanvas->GetNextCallback();
		}
	}
}