Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mat-dev] Central Build for MAT available


Erwin, thank you for setting up the central build for MAT - this is good news.

These are the errors
https://build.eclipse.org/hudson/view/Athena%20CBI%20%28SVN%29/job/cbi-mat-nightly/14/console

    [javac] ----------
   [javac] 1. ERROR in /opt/users/hudsonbuild/.hudson/jobs/cbi-mat-nightly/workspace/build/N200912041153/eclipse/plugins/org.eclipse.mat.dtfj/src/org/eclipse/mat/dtfj/DTFJHeapObjectReader.java (at line 327)
   [javac]                  JavaObject jo = jvm.getObjectAtAddress(ip);
   [javac]                                      ^^^^^^^^^^^^^^^^^^
   [javac] The method getObjectAtAddress(ImagePointer) is undefined for the type JavaRuntime
   

    [javac] 12. ERROR in /opt/users/hudsonbuild/.hudson/jobs/cbi-mat-nightly/workspace/build/N200912041153/eclipse/plugins/org.eclipse.mat.dtfj/src/org/eclipse/mat/dtfj/DTFJIndexBuilder.java (at line 2197)
   [javac]                  it = run.getHeapRoots();
   [javac]                           ^^^^^^^^^^^^
   [javac] The method getHeapRoots() is undefined for the type JavaRuntime

    [javac] 18. ERROR in /opt/users/hudsonbuild/.hudson/jobs/cbi-mat-nightly/workspace/build/N200912041153/eclipse/plugins/org.eclipse.mat.dtfj/src/org/eclipse/mat/dtfj/DTFJIndexBuilder.java (at line 4469)
   [javac]                  i2 = clsObj.getReferences();
   [javac]                              ^^^^^^^^^^^^^
   [javac] The method getReferences() is undefined for the type JavaObject
   [javac] ----------
   [javac] 19. ERROR in /opt/users/hudsonbuild/.hudson/jobs/cbi-mat-nightly/workspace/build/N200912041153/eclipse/plugins/org.eclipse.mat.dtfj/src/org/eclipse/mat/dtfj/DTFJIndexBuilder.java (at line 4479)
   [javac]                  i2 = jc.getReferences();
   [javac]                          ^^^^^^^^^^^^^
   [javac] The method getReferences() is undefined for the type JavaClass



I don't  think the problem is incompatible changes in DTFJ between 1.3.0 and 1.3.2, but rather an incompatibility between the javac VM level of DTFJ and the latest DTFJ. Those methods were introduced a year ago.

I've seem this sort of problem on my machine.

The MAT DTFJ adapter compiles inside of Eclipse against the com.ibm.dtfj.api project because the Eclipse compiler finds the com.ibm.dtfj.api files first.

PDE builds can fail because the javac compiler takes files from its boot class path and ext dirs path first. IBM VMs have a version of dtfj in the jre/lib/ext directory. Depending on the VM age this could be back level compared to the version required for MAT, and be missing methods such as getObjectAtAddress.

You may be able to avoid this by compiling with
-extdirs ""

That would be best as then the VM level would not affect the compilation.

Other options are:
  1. compiling with a more recent VM
    Test the VM with javap com.ibm.dtfj.java.JavaRuntime and see if getObjectAtAddress and getHeapRoots are available
  2. trying a 64-bit VM for compiling in case the dtfj is more recent
  3. replacing the dtfj.jar in the compiler vm ext directory with a more recent one
  4. replacing the dtfj.jar with a jar file with no classes - that way the old classes are not found and the new ones from the com.ibm.dtfj.api project are found instead.

Andrew Johnson






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







Back to the top