Fix error and message handler with thunking. Also fix null check with equals.

Change-Id: I3f05d3dfcbcfac679ce91feb3459ceb177c60161
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java b/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
index 153019d..b9d3ef4 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
@@ -140,6 +140,10 @@
         if (this == obj)
             return true;
 
+        if (obj == null) {
+            return false;
+        }
+
         if (getClass() != obj.getClass()) {
             return false;
         }
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
index aa787c0a..d4a3a98 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
@@ -86,6 +86,42 @@
 
     }
 
+    public void setMessageHandler(RSMessageHandler msg) {
+        mMessageCallback = msg;
+        try {
+            android.renderscript.RenderScript.RSMessageHandler handler =
+                new android.renderscript.RenderScript.RSMessageHandler() {
+                    public void run() {
+                        mMessageCallback.mData = mData;
+                        mMessageCallback.mID = mID;
+                        mMessageCallback.mLength = mLength;
+                        mMessageCallback.run();
+                    }
+                };
+            mN.setMessageHandler(handler);
+        } catch (android.renderscript.RSRuntimeException e) {
+            throw ExceptionThunker.convertException(e);
+        }
+    }
+
+    public void setErrorHandler(RSErrorHandler msg) {
+        mErrorCallback = msg;
+        try {
+            android.renderscript.RenderScript.RSErrorHandler handler =
+                new android.renderscript.RenderScript.RSErrorHandler() {
+                    public void run() {
+                        mErrorCallback.mErrorMessage = mErrorMessage;
+                        mErrorCallback.mErrorNum = mErrorNum;
+                        mErrorCallback.run();
+                    }
+                };
+            mN.setErrorHandler(handler);
+        } catch (android.renderscript.RSRuntimeException e) {
+            throw ExceptionThunker.convertException(e);
+        }
+    }
+
+
     boolean equals(Object obj1, Object obj2) {
         if (obj2 instanceof android.support.v8.renderscript.BaseObj) {
             return ((android.renderscript.BaseObj)obj1).equals(((android.support.v8.renderscript.BaseObj)obj2).getNObj());