Handle case createShader throws an exception.

Ensures the state of the class remains correct even if an unhandled
exception is thrown from this method.

Bug: b/176214704
Change-Id: I94504bb8aa4bd2dba45d116d5fa13da070a3b60f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201621
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32963}
diff --git a/sdk/android/src/java/org/webrtc/GlGenericDrawer.java b/sdk/android/src/java/org/webrtc/GlGenericDrawer.java
index 92b4245..0e9718e 100644
--- a/sdk/android/src/java/org/webrtc/GlGenericDrawer.java
+++ b/sdk/android/src/java/org/webrtc/GlGenericDrawer.java
@@ -219,11 +219,14 @@
       shader = currentShader;
     } else {
       // Allocate new shader.
-      currentShaderType = shaderType;
+      currentShaderType = null;
       if (currentShader != null) {
         currentShader.release();
+        currentShader = null;
       }
+
       shader = createShader(shaderType);
+      currentShaderType = shaderType;
       currentShader = shader;
 
       shader.useProgram();