You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kato-commits@incubator.apache.org by sp...@apache.org on 2010/01/07 08:24:23 UTC
svn commit: r896794 - in /incubator/kato/trunk/org.apache.kato:
kato.cjvmti/src/main/java/org/apache/kato/jvmti/javaruntime/model/
kato.hprof.api/src/main/java/org/apache/kato/hprof/java/
kato.jdi/src/main/java/org/apache/kato/tools/jdi/ kato.tck/execu...
Author: spoole
Date: Thu Jan 7 08:23:11 2010
New Revision: 896794
URL: http://svn.apache.org/viewvc?rev=896794&view=rev
Log:
updated implementations , tools and tests to handle new JavaThread , NativejavaThread separation.
Modified:
incubator/kato/trunk/org.apache.kato/kato.cjvmti/src/main/java/org/apache/kato/jvmti/javaruntime/model/JThread.java
incubator/kato/trunk/org.apache.kato/kato.hprof.api/src/main/java/org/apache/kato/hprof/java/JavaThreadImpl.java
incubator/kato/trunk/org.apache.kato/kato.jdi/src/main/java/org/apache/kato/tools/jdi/KatoReader.java
incubator/kato/trunk/org.apache.kato/kato.tck/execution/hprof/src/test/ant/test.xml
incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tck/tests/legacy/TestJavaThread.java
incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tests/junit/JavaThreadTest.java
incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoLockCommand.java
incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoThreadCommand.java
Modified: incubator/kato/trunk/org.apache.kato/kato.cjvmti/src/main/java/org/apache/kato/jvmti/javaruntime/model/JThread.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.cjvmti/src/main/java/org/apache/kato/jvmti/javaruntime/model/JThread.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.cjvmti/src/main/java/org/apache/kato/jvmti/javaruntime/model/JThread.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.cjvmti/src/main/java/org/apache/kato/jvmti/javaruntime/model/JThread.java Thu Jan 7 08:23:11 2010
@@ -14,22 +14,16 @@
package org.apache.kato.jvmti.javaruntime.model;
-import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import javax.tools.diagnostics.image.CorruptDataException;
import javax.tools.diagnostics.image.DataUnavailable;
-import javax.tools.diagnostics.image.ImagePointer;
-import javax.tools.diagnostics.image.ImageSection;
-import javax.tools.diagnostics.image.ImageThread;
-import javax.tools.diagnostics.image.MemoryAccessException;
-import javax.tools.diagnostics.runtime.java.JavaClass;
-import javax.tools.diagnostics.runtime.java.JavaHeap;
import javax.tools.diagnostics.runtime.java.JavaObject;
import javax.tools.diagnostics.runtime.java.JavaStackFrame;
import javax.tools.diagnostics.runtime.java.JavaThread;
+import javax.tools.diagnostics.runtime.java.NativeJavaThread;
import org.apache.kato.jvmti.reader.CLogger;
@@ -120,11 +114,7 @@
}
}
- @Override
- public ImageThread getImageThread() throws CorruptDataException,
- DataUnavailable {
- throw new DataUnavailable();
- }
+
public void addStackFrame(JStackFrame frame) {
@@ -132,11 +122,6 @@
}
@Override
- public ImagePointer getJNIEnv() throws CorruptDataException {
-
- return new SimpleImagePointer(id);
- }
- @Override
public String getName() throws CorruptDataException {
return threadName;
@@ -161,13 +146,15 @@
return frames;
}
- @Override
- public List<ImageSection> getStackSections() {
- return Collections.emptyList();
- }
+
@Override
public int getState() throws CorruptDataException {
return state;
}
+
+ @Override
+ public NativeJavaThread getNativeThread() throws DataUnavailable {
+ throw new DataUnavailable();
+ }
}
\ No newline at end of file
Modified: incubator/kato/trunk/org.apache.kato/kato.hprof.api/src/main/java/org/apache/kato/hprof/java/JavaThreadImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.hprof.api/src/main/java/org/apache/kato/hprof/java/JavaThreadImpl.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.hprof.api/src/main/java/org/apache/kato/hprof/java/JavaThreadImpl.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.hprof.api/src/main/java/org/apache/kato/hprof/java/JavaThreadImpl.java Thu Jan 7 08:23:11 2010
@@ -23,6 +23,7 @@
import javax.tools.diagnostics.image.ImageThread;
import javax.tools.diagnostics.runtime.java.JavaObject;
import javax.tools.diagnostics.runtime.java.JavaThread;
+import javax.tools.diagnostics.runtime.java.NativeJavaThread;
import org.apache.kato.hprof.IJavaStack;
import org.apache.kato.hprof.IJavaStackFrame;
@@ -41,29 +42,8 @@
this.thread = thread;
}
- /**
- * There are no image threads in hprof files.
- *
- * @throws DataUnavailable always - there are no ImageThreads
- */
- @Override
- public ImageThread getImageThread() throws CorruptDataException,
- DataUnavailable {
- throw new DataUnavailable("ImageThreads not present in Hprof file.");
- }
-
- /**
- * There are no JNIEnvs in Hprof.
- * There is no DataUnavailable exception, so we wrap up the thread serial# in an
- * image pointer.
- *
- * @return ImagePointer of thread serial number
- */
- @Override
- public ImagePointer getJNIEnv() throws CorruptDataException {
- return heap.getImagePointer(thread.getThreadSerialNumber());
- }
+
@Override
public String getName() throws CorruptDataException {
@@ -105,15 +85,7 @@
return frames;
}
- /**
- * Stack sections are not recorded in hprof files.
- *
- * @return empty iterator.
- */
- @Override
- public List getStackSections() {
- return new LinkedList();
- }
+
/**
* State isn't recorded in Hprof. Only live threads
@@ -126,4 +98,12 @@
return STATE_ALIVE;
}
+
+
+
+ @Override
+ public NativeJavaThread getNativeThread() throws DataUnavailable {
+ throw new DataUnavailable();
+ }
+
}
Modified: incubator/kato/trunk/org.apache.kato/kato.jdi/src/main/java/org/apache/kato/tools/jdi/KatoReader.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.jdi/src/main/java/org/apache/kato/tools/jdi/KatoReader.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.jdi/src/main/java/org/apache/kato/tools/jdi/KatoReader.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.jdi/src/main/java/org/apache/kato/tools/jdi/KatoReader.java Thu Jan 7 08:23:11 2010
@@ -2419,14 +2419,14 @@
JavaThread owningThread = jm.getOwner();
if (owningThread != null){
- addLongToVector(vctr, owningThread.getJNIEnv().getAddress());
+ addLongToVector(vctr, owningThread.getNativeThread().getJNIEnv().getAddress());
}else{
addLongToVector(vctr, 0);
}
addIntToVector(vctr, 1);
addIntToVector(vctr, jm.getEnterWaiters().size());
for (JavaThread thr : jm.getEnterWaiters()){
- addLongToVector(vctr, thr.getJNIEnv().getAddress());
+ addLongToVector(vctr, thr.getNativeThread().getJNIEnv().getAddress());
}
logr.log(JDILogger.LEVEL_VERYVERBOSE," "+jm.getEnterWaiters().size()+" waiting and owner is "+owningThread);
}else{
@@ -2930,7 +2930,7 @@
for (JavaMonitor jm : monitorMap.values()){
JavaThread thr;
if ((thr = jm.getOwner())!= null){
- if (thr.getJNIEnv().getAddress() == threadID){
+ if (thr.getNativeThread().getJNIEnv().getAddress() == threadID){
ownedMonitors.add(jm.getObject());
}
}
@@ -2953,7 +2953,7 @@
JavaMonitor contended = null;
for (JavaMonitor jm : monitorMap.values()){
for (JavaThread thr: jm.getEnterWaiters()){
- if (thr.getJNIEnv().getAddress() == threadID){
+ if (thr.getNativeThread().getJNIEnv().getAddress() == threadID){
contended = jm;
}
}
Modified: incubator/kato/trunk/org.apache.kato/kato.tck/execution/hprof/src/test/ant/test.xml
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.tck/execution/hprof/src/test/ant/test.xml?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.tck/execution/hprof/src/test/ant/test.xml (original)
+++ incubator/kato/trunk/org.apache.kato/kato.tck/execution/hprof/src/test/ant/test.xml Thu Jan 7 08:23:11 2010
@@ -36,7 +36,7 @@
<mkdir dir="${results}"/>
- <junit>
+ <junit haltonerror="true" haltonfailure="true">
<classpath>
<pathelement path="${path}"/>
</classpath>
Modified: incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tck/tests/legacy/TestJavaThread.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tck/tests/legacy/TestJavaThread.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tck/tests/legacy/TestJavaThread.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tck/tests/legacy/TestJavaThread.java Thu Jan 7 08:23:11 2010
@@ -25,6 +25,7 @@
import javax.tools.diagnostics.runtime.java.JavaRuntime;
import javax.tools.diagnostics.runtime.java.JavaStackFrame;
import javax.tools.diagnostics.runtime.java.JavaThread;
+import javax.tools.diagnostics.runtime.java.NativeJavaThread;
import org.apache.kato.tck.harness.TCKJavaRuntimeTestcase;
@@ -46,21 +47,13 @@
try {
- ImageThread ithread=t.getImageThread();
- assertNotNull("Entry "+counter+":image thread is null - DataUnavailable should have been thrown instead",ithread);
+ NativeJavaThread ithread=t.getNativeThread();
+ assertNotNull("Entry "+counter+":native thread is null - DataUnavailable should have been thrown instead",ithread);
- } catch (CorruptDataException e) {
- // allowed
} catch (DataUnavailable e) {
// allowed
}
- try {
- ImagePointer p=t.getJNIEnv();
- assertNotNull("Entry "+counter+":JNIEnv is null - DataUnavailable should have been thrown instead",p);
- } catch (CorruptDataException e) {
- // allowed
- }
try {
@@ -88,8 +81,6 @@
List<JavaStackFrame> frames=t.getStackFrames();
assertNotNull("Entry "+counter+":frames list is null",frames);
- List<ImageSection> sections=t.getStackSections();
- assertNotNull("Entry "+counter+":section list is null",sections);
try {
int state=t.getState();
Modified: incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tests/junit/JavaThreadTest.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tests/junit/JavaThreadTest.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tests/junit/JavaThreadTest.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.tck/testcases/src/main/java/org/apache/kato/tests/junit/JavaThreadTest.java Thu Jan 7 08:23:11 2010
@@ -33,19 +33,7 @@
super.setUp();
}
- /**
- * Test method for 'javax.tools.diagnostics.runtime.java.JavaThread.getJNIEnv()'
- *
- * Ensures that the JNIEnv is non-null
- */
- public void testGetJNIEnv()
- {
- try {
- assertNotNull(_thread.getJNIEnv());
- } catch (CorruptDataException e) {
- //this is acceptable by the spec
- }
- }
+
/*
* Test method for 'javax.tools.diagnostics.runtime.java.JavaThread.getPriority()'
@@ -86,32 +74,20 @@
}
/**
- * Test method for 'javax.tools.diagnostics.runtime.java.JavaThread.getImageThread()'
+ * Test method for 'javax.tools.diagnostics.runtime.java.JavaThread.getNativeThread()'
*
* Ensures that a non-null image thread can be pulled from this thread
*/
- public void testGetImageThread()
+ public void testGetNativeThread()
{
try {
- assertNotNull(_thread.getImageThread());
- } catch (CorruptDataException e) {
- //this is acceptable by the spec
+ assertNotNull(_thread.getNativeThread());
} catch (DataUnavailable e) {
//this is acceptable by the spec
}
}
- /**
- * Test method for 'javax.tools.diagnostics.runtime.java.JavaThread.getStackSections()'
- *
- * Ensures that a non-null, non-empty iterator is returned
- */
- public void testGetStackSections()
- {
- Iterator it = _thread.getStackSections().iterator();
- assertNotNull(it);
- assertTrue(it.hasNext());
- }
+
/**
* Test method for 'javax.tools.diagnostics.runtime.java.JavaThread.getStackFrames()'
Modified: incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoLockCommand.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoLockCommand.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoLockCommand.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoLockCommand.java Thu Jan 7 08:23:11 2010
@@ -64,7 +64,7 @@
JavaThread owner = jMonitor.getOwner();
if (null != owner) {
try {
- out.println("\towner thread id: " + owner.getImageThread().getID()
+ out.println("\towner thread id: " + owner.getNativeThread().getImageThread().getID()
+ " name: " + owner.getName());
} catch (DataUnavailable e) {
out.println("\towner thread id: " + Exceptions.getDataUnavailableString());
@@ -76,7 +76,7 @@
while (itEnterWaiter.hasNext()) {
JavaThread jThread = (JavaThread)itEnterWaiter.next();
try {
- out.println("\twaiting thread id: " + jThread.getImageThread().getID()
+ out.println("\twaiting thread id: " + jThread.getNativeThread().getImageThread().getID()
+ " name: " + jThread.getName());
} catch (DataUnavailable dae) {
out.println("\twaiting thread id: <unknown>");
@@ -86,7 +86,7 @@
while (itNotifyWaiter.hasNext()) {
JavaThread jThread = (JavaThread)itNotifyWaiter.next();
try {
- out.println("\twaiting thread id: " + jThread.getImageThread().getID()
+ out.println("\twaiting thread id: " + jThread.getNativeThread().getImageThread().getID()
+ " name: " + jThread.getName());
} catch (DataUnavailable dae) {
out.println("\twaiting thread id: <unknown>");
@@ -125,7 +125,7 @@
} else {
String owningThreadID = null;
try {
- owningThreadID = owner.getImageThread().getID();
+ owningThreadID = owner.getNativeThread().getImageThread().getID();
} catch (DataUnavailable e) {
owningThreadID = Exceptions.getDataUnavailableString();
}
Modified: incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoThreadCommand.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoThreadCommand.java?rev=896794&r1=896793&r2=896794&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoThreadCommand.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.tools.katoview/src/main/java/org/apache/kato/katoview/commands/infocommands/InfoThreadCommand.java Thu Jan 7 08:23:11 2010
@@ -356,7 +356,7 @@
String currID;
try {
- ImageThread it = jt.getImageThread();
+ ImageThread it = jt.getNativeThread().getImageThread();
currID = it.getID();
} catch (DiagnosticException e) {
currID = null;