diff --git a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_jni_helper.cpp b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_jni_helper.cpp
index e8661c795e6832ea795f4d2adfca0efc4666644e..7146f4e4d12d07179ab25902d6d3aea958d2ddfc 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_jni_helper.cpp
+++ b/java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_jni_helper.cpp
@@ -62,22 +62,26 @@ bool setRandomInBuffer(JNIEnv *env, uint8_t **aBuffer2Ptr, size_t aRandomSize)
                 newObj = env->NewObject(cls, constructor);
                 jbyteArray tempByteArray = env->NewByteArray(bufferLen);
 
-                if (newObj && tempByteArray && !env->ExceptionOccurred())
+                if (newObj && tempByteArray)
                 {
                     env->CallVoidMethod(newObj, nextByteMethod, tempByteArray);
-                    jbyte* buffer = env->GetByteArrayElements(tempByteArray, NULL);
 
-                    if (buffer)
+                    if (!env->ExceptionOccurred())
                     {
-                        memcpy(*aBuffer2Ptr, buffer, bufferLen);
-                        retCode = true;
+                        jbyte* buffer = env->GetByteArrayElements(tempByteArray, NULL);
 
-                        // clear tempByteArray to hide sensitive data.
-                        memset(buffer, 0, bufferLen);
-                        env->SetByteArrayRegion(tempByteArray, 0, bufferLen, buffer);
+                        if (buffer)
+                        {
+                            memcpy(*aBuffer2Ptr, buffer, bufferLen);
+                            retCode = true;
 
-                        // ensure that the buffer is released
-                        env->ReleaseByteArrayElements(tempByteArray, buffer, JNI_ABORT);
+                            // clear tempByteArray to hide sensitive data.
+                            memset(buffer, 0, bufferLen);
+                            env->SetByteArrayRegion(tempByteArray, 0, bufferLen, buffer);
+
+                            // ensure that the buffer is released
+                            env->ReleaseByteArrayElements(tempByteArray, buffer, JNI_ABORT);
+                        }
                     }
                 }