x/ref: Avoid JNI DETECTED ERROR IN APPLICATION error

I noticed that if I try to return a non-primitive object during an
exception (such as during SyncgroupJoin) that the jni would crash.

This error seems to imply that we have to wait for Java to handle
the exception OR clear the exception OR just return early (with null).

I opted for returning early. The JNI functions that return errors and
primitives remain as-is since the latter can't be nil'd.

Change-Id: If7d88ee72cead5a6f0c0d38061a2f309570089d3
diff --git a/services/syncbase/bridge/cgo/jni.go b/services/syncbase/bridge/cgo/jni.go
index 9cc9098..2aed5e7 100644
--- a/services/syncbase/bridge/cgo/jni.go
+++ b/services/syncbase/bridge/cgo/jni.go
@@ -330,7 +330,9 @@
 	var cSpec C.v23_syncbase_SyncgroupSpec
 	var cErr C.v23_syncbase_VError
 	v23_syncbase_DbJoinSyncgroup(cName, cRemoteSyncbaseName, cExpectedSyncbaseBlessings, cSgId, cMyInfo, &cSpec, &cErr)
-	maybeThrowException(env, &cErr)
+	if maybeThrowException(env, &cErr) {
+		return nil
+	}
 	return cSpec.extractToJava(env)
 }
 
@@ -687,7 +689,9 @@
 	var r C.v23_syncbase_Bytes
 	var cErr C.v23_syncbase_VError
 	v23_syncbase_RowGet(cName, cHandle, &r, &cErr)
-	maybeThrowException(env, &cErr)
+	if maybeThrowException(env, &cErr) {
+		return nil
+	}
 	return r.extractToJava(env)
 }
 
@@ -722,7 +726,9 @@
 	var cBlessing C.v23_syncbase_String
 	var cErr C.v23_syncbase_VError
 	v23_syncbase_AppBlessingFromContext(&cBlessing, &cErr)
-	maybeThrowException(env, &cErr)
+	if maybeThrowException(env, &cErr) {
+		return nil
+	}
 	return cBlessing.extractToJava(env)
 }
 
@@ -731,7 +737,9 @@
 	var cBlessing C.v23_syncbase_String
 	var cErr C.v23_syncbase_VError
 	v23_syncbase_UserBlessingFromContext(&cBlessing, &cErr)
-	maybeThrowException(env, &cErr)
+	if maybeThrowException(env, &cErr) {
+		return nil
+	}
 	return cBlessing.extractToJava(env)
 }