Use specific exception class to abort transaction
We used to throw a java.lang.InternalError when aborting a
transaction (when preinitializing image classes at compilation time).
We now use dedicated class dalvik.system.TransactionAbortError that
is only thrown by the compiler to abort a transaction. This class has
constructors taking a java.lang.Throwable "cause" so we can wrap
exceptions causing the transaction to abort (for instance class
java.lang.ClassNotFoundException) and give more information about the
cause of the transaction abort.
Bug: 20019689
Change-Id: I019a72a1c754d8bba6a7ad6bb0f02e4fd6668622
diff --git a/runtime/runtime.h b/runtime/runtime.h
index 64b7183..af3d899 100644
--- a/runtime/runtime.h
+++ b/runtime/runtime.h
@@ -468,9 +468,9 @@
void ExitTransactionMode();
bool IsTransactionAborted() const;
- void AbortTransactionAndThrowInternalError(Thread* self, const std::string& abort_message)
+ void AbortTransactionAndThrowAbortError(Thread* self, const std::string& abort_message)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
- void ThrowInternalErrorForAbortedTransaction(Thread* self)
+ void ThrowTransactionAbortError(Thread* self)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
void RecordWriteFieldBoolean(mirror::Object* obj, MemberOffset field_offset, uint8_t value,