From: Michael G. <ge...@gm...> - 2007-04-29 08:58:54
|
We have been trying to extend the behavior of GenMS collector. Specifically, we are initializing a member array in its constructor (via new[SIZE]), and accessing its .length in alloc(). The array is supposed to be an array of local allocators (derived from BumpPointer) But we get a null pointer exception on this. We are not using optimizations. The stack trace is: JikesRVM: internal error: recursive use of hardware exception registers (exiting) -- Stack -- Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateSpace(Lorg/jikesrvm/memorymanagers/mminterface/Selected$Mutator;IIIII)Lorg/vmmagic/unboxed/Address; at line 590 Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 559 Lorg/jikesrvm/runtime/VM_Runtime; resolvedNewArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 459 Lorg/jikesrvm/runtime/VM_StackTrace; <init>(I)V at line 85 Ljava/lang/Throwable; fillInStackTrace()Ljava/lang/Throwable; at line 106 Ljava/lang/Throwable; <init>()V at line 50 Ljava/lang/Exception; <init>()V at line 66 Ljava/lang/RuntimeException; <init>()V at line 64 Ljava/lang/NullPointerException; <init>()V at line 69 Lorg/jikesrvm/runtime/VM_Runtime; deliverHardwareException(II)V at line 681 <hardware trap> Lorg/mmtk/plan/kadgc/KADGCMutator; alloc(IIIII)Lorg/vmmagic/unboxed/Address; at line 123 Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateSpace(Lorg/jikesrvm/memorymanagers/mminterface/Selected$Mutator;IIIII)Lorg/vmmagic/unboxed/Address; at line 590 Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface; allocateArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 559 Lorg/jikesrvm/runtime/VM_Runtime; resolvedNewArray(III[Ljava/lang/Object;IIII)Ljava/lang/Object; at line 459 Lorg/jikesrvm/VM_CommandLineArgs$ArgReader; <init>()V at line 712 Lorg/jikesrvm/VM_CommandLineArgs; fetchCommandLineArguments()V at line 186 Lorg/jikesrvm/VM; finishBooting()V at line 173 Lorg/jikesrvm/VM; boot()V at line 132 What is the problem here? Thanks, Michael |