Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 331686

Summary: ParseHeapDump.sh seems to need IBM classes (com.ibm.dtfj.image.CorruptDataException) not present in MAT
Product: [Tools] MAT Reporter: Scott Marlow <scott.marlow>
Component: CoreAssignee: Project Inbox <mat.core-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: andrew_johnson
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Scott Marlow CLA 2010-12-02 10:56:28 EST
Build Identifier: 1.0.1

I tried to run ParseHeapDump.sh against a heapdump and get a java.lang.NoClassDefFoundError on com.ibm.dtfj.image.CorruptDataException

Full console output is here:  http://pastebin.com/aMYntUga

Version info from MAT about box:
Version: 1.0.1.201008091353
Build id: 1.0.1

Reproducible: Always

Steps to Reproduce:
1. run with openjdk or sunjdk on Linux x64
2. ./ParseHeapDump.sh somePath/someDump.hprof 
3. Boom
Comment 1 Andrew Johnson CLA 2010-12-06 11:05:40 EST
This message also appears with the Windows version when running ParseHeapDump without DTFJ installed.

I think it's harmless.

The problem is that the org.eclipse.mat.dtfj doesn't require the IBM DTFJ plugins as the idea is that it can use them later once they are installed. However,  when this plugin is stopped it calls some code which presumes the availability of the IBM DTFJ com.ibm.java.dtfj
Comment 2 Andrew Johnson CLA 2010-12-06 11:21:53 EST
I have modified InitDTFJ so that does not call com.ibm.dtfj.image.CorruptDataException
unless there is an com.ibm.dtfj.api.ImageFactory extension point.