ART: Workaround for b/20019689

Don't throw InternalError as wrapped for now, swallowing the
original exception.

Bug: 20019689
Change-Id: I77a56262304b09b326232bee0c7916bb73401d74
diff --git a/runtime/transaction.cc b/runtime/transaction.cc
index 3b708f6..186cfea 100644
--- a/runtime/transaction.cc
+++ b/runtime/transaction.cc
@@ -75,7 +75,11 @@
     CHECK(IsAborted()) << "Rethrow InternalError while transaction is not aborted";
   }
   std::string abort_msg(GetAbortMessage());
-  self->ThrowNewWrappedException("Ljava/lang/InternalError;", abort_msg.c_str());
+  // Temporary workaround for b/20019689.
+  if (self->IsExceptionPending()) {
+    self->ClearException();
+  }
+  self->ThrowNewException("Ljava/lang/InternalError;", abort_msg.c_str());
 }
 
 bool Transaction::IsAborted() {