Abort redefinition if we failed to acquire class object

When there are mutiple redefinitions at a time, which require
holding corresponding class objects on creation (without suspension),
may cause a deadlock with other threads in which we might wait on
those objects as well.

Example:
Thread 1(redefiner):  holds class A(on redefinition's creation) -> waits on class B(on another creation)
Thread 2           :  holds class B(through monitor instrs)     -> waits on class A(at following monitor instrs)

Test: art/test.py -b --host

Change-Id: I706fdae5304b36ec1e580040cf81a42f898fe09c
2 files changed