changeset 14454:0508d801b1fb

8143921: nsk/jdi/ObjectReference/waitingThreads/waitingthreads003 fails with JVMTI_ERROR_INVALID_CLASS Summary: Skip invalid classes Reviewed-by: sspitsyn
author dsamersoff
date Thu, 21 Apr 2016 13:18:46 +0300
parents 4958bdcf895d
children 35ce2ada6b0a
files src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c	Wed Apr 20 15:09:39 2016 +0000
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c	Thu Apr 21 13:18:46 2016 +0300
@@ -126,7 +126,7 @@
             int writtenCount = 0;
             int i;
 
-            for (i=0; i<classCount; i++) {
+            for (i = 0; i < classCount; i++) {
                 jclass clazz = theClasses[i];
                 jint status = classStatus(clazz);
                 char *candidate_signature = NULL;
@@ -141,7 +141,13 @@
 
                 error = classSignature(clazz, &candidate_signature, NULL);
                 if (error != JVMTI_ERROR_NONE) {
-                    break;
+                  // Clazz become invalid since the time we get the class list
+                  // Skip this entry
+                  if (error == JVMTI_ERROR_INVALID_CLASS) {
+                    continue;
+                  }
+
+                  break;
                 }
 
                 if (strcmp(candidate_signature, signature) == 0) {