1 Initializing and loading the TestWatcher class that will (eventually) be notified of object allocations 2 Allocating an j.l.Object before redefining Object class 3 Allocating a Transform before redefining Object class 4 Redefining the Object class to add a hook into the <init> method 5 Allocating an j.l.Object after redefining Object class 6 Object allocated of type 'java.lang.Object' 7 Allocating a Transform after redefining Object class 8 Object allocated of type 'Transform' 9 Allocating an int[] after redefining Object class 10 Allocating an array list 11 Object allocated of type 'java.util.ArrayList' 12 Adding a bunch of stuff to the array list 13 Object allocated of type 'java.lang.Object' 14 Object allocated of type 'java.lang.Object' 15 Object allocated of type 'Transform' 16 Allocating a linked list 17 Object allocated of type 'java.util.LinkedList' 18 Adding a bunch of stuff to the linked list 19 Object allocated of type 'java.lang.Object' 20 Object allocated of type 'java.util.LinkedList$Node' 21 Object allocated of type 'java.lang.Object' 22 Object allocated of type 'java.util.LinkedList$Node' 23 Object allocated of type 'java.util.LinkedList$Node' 24 Object allocated of type 'java.util.LinkedList$Node' 25 Object allocated of type 'java.util.LinkedList$Node' 26 Object allocated of type 'java.util.LinkedList$Node' 27 Object allocated of type 'Transform' 28 Object allocated of type 'java.util.LinkedList$Node' 29 Throwing from down 4 stack frames 30 Object allocated of type 'java.lang.Exception' 31 Exception caught. 32 Finishing test! 33