Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Memory Analyzer (MAT) » Error opening jextract'ed dump
Error opening jextract'ed dump [message #7877] Fri, 28 November 2008 14:17 Go to next message
Mark Macdonald is currently offline Mark Macdonald
Messages: 2
Registered: July 2009
Junior Member
I am trying to use MAT to analyse a jextract'ed dump.
Here is what I do:

1. Run my Eclipse application (using the JVM level shown below).
2. Generate a dump using sendsignal.exe.
3. Run jextract from the JVM, which generates an .xml and .zip file.
4. Open the .xml file in MAT.
5. MAT dies with an exception.

My JVM is:

IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32
jvmwi3260-20081105_25433 (JIT enabled, AOT enabled)
J9VM - 20081105_025433_lHdSMr
JIT - r9_20081031_1330
GC - 20081027_AB)
JCL - 20081106_01

The exception is:

!ENTRY org.eclipse.mat.ui 1 0 2008-11-28 14:15:48.140
!MESSAGE Took 4,125ms to get the DTFJ image from file
C:\eclipse34\eclipse\core.20081128.141346.5808.0001.dmp.xml

!ENTRY org.eclipse.core.jobs 4 2 2008-11-28 14:15:48.140
!MESSAGE An internal error occurred during: "Parsing heap dump from
'C:\eclipse34\eclipse\core.20081128.141346.5808.0001.dmp.xml ' ".
!STACK 0
java.lang.IllegalArgumentException: Only array types have component types
at com.ibm.dtfj.java.j9.JavaClass.getComponentType(JavaClass.ja va:80)
at
org.eclipse.mat.dtfj.DTFJIndexBuilder.getClassLoader1(DTFJIn dexBuilder.java:3551)
at
org.eclipse.mat.dtfj.DTFJIndexBuilder.getClassLoader(DTFJInd exBuilder.java:3566)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.fill(DTFJIndexBuilder. java:353)
at
org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(Sn apshotFactoryImpl.java:184)
at
org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnap shot(SnapshotFactoryImpl.java:102)
at
org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(Snapsh otFactory.java:87)
at
org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDu mpJob.java:54)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Re: Error opening jextract'ed dump [message #7898 is a reply to message #7877] Mon, 01 December 2008 05:33 Go to previous messageGo to next message
Andrew Johnson is currently offline Andrew Johnson
Messages: 118
Registered: July 2009
Senior Member
The DTFJ Adapter is trying (and failing) to find the class loader for a
class. It is attempting to work around a problem where some array classes
don't have a class loader given by DTFJ. However in this case it looks
like a non-array class doesn't have a class loader.

Do you have any messages like the following in the log?
No class loader for {0}, trying component type {1} class loader instead

I'll modify the adapter to be more defensive. I don't know when the next
version of the DTFJ adapter will be released however, so all I can suggest
for the moment is to get another dump and see if the problem goes away.

Thank you for the bug report.

Andrew Johnson
Re: Error opening jextract'ed dump [message #7918 is a reply to message #7898] Mon, 01 December 2008 14:52 Go to previous message
Mark Macdonald is currently offline Mark Macdonald
Messages: 2
Registered: July 2009
Junior Member
Hi Andrew,

Thanks for the reply. Your remark about class loaders made me realize
that, although my heapdump was generated with a 6.0 SR3 JVM, the Eclipse
environment in which MAT and DTFJ were installed was actually running on
the system JVM, which was 5.0 SR2. Once I forced Eclipse to launch with
the newer JVM, the error went away.

And FYI, I did not see "No class loader for {0}, trying component type {1}
class loader instead" in the log.
Previous Topic:help interpret results - finalize() making memory leak worse?
Next Topic:How to get executing stack and local variable information?
Goto Forum:
  


Current Time: Mon Jul 28 08:40:48 EDT 2014

Powered by FUDForum. Page generated in 0.01536 seconds