Skip to content

Commit 7cb56a2

Browse files
committed
8265796: vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java fails when running with JEP 416
Reviewed-by: cjplummer, mchung
1 parent 24e586a commit 7cb56a2

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

test/hotspot/jtreg/ProblemList.txt

-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
#
3939
#############################################################################
4040

41-
vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java 8265796 generic-all
4241

4342
#############################################################################
4443

test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -56,14 +56,17 @@
5656
* @build nsk.jdi.ObjectReference.referringObjects.referringObjects002.referringObjects002
5757
* nsk.jdi.ObjectReference.referringObjects.referringObjects002.referringObjects002a
5858
* nsk.share.jdi.TestClass1
59+
* @build sun.hotspot.WhiteBox
60+
* @run driver jdk.test.lib.helpers.ClassFileInstaller sun.hotspot.WhiteBox
5961
* @run main/othervm/native
6062
* nsk.jdi.ObjectReference.referringObjects.referringObjects002.referringObjects002
6163
* -verbose
6264
* -arch=${os.family}-${os.simpleArch}
6365
* -waittime=5
6466
* -debugee.vmkind=java
6567
* -transport.address=dynamic
66-
* -debugee.vmkeys="-Xmx256M ${test.vm.opts} ${test.java.opts}"
68+
* -debugee.vmkeys="-Xmx256M -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
69+
* -XX:+WhiteBoxAPI ${test.vm.opts} ${test.java.opts}"
6770
* -testClassPath ${test.class.path}
6871
*/
6972

@@ -97,6 +100,10 @@ protected String debuggeeClassName() {
97100

98101
public void checkClassObjectReferrersCount(ClassObjectReference classObjectReference, int expectedCount) {
99102
int referrersCount = classObjectReference.referringObjects(0).size();
103+
log.display("References:");
104+
for (ObjectReference ref: classObjectReference.referringObjects(0)) {
105+
log.display(ref);
106+
}
100107

101108
if (referrersCount != expectedCount) {
102109
setSuccess(false);
@@ -137,7 +144,6 @@ protected void doTest() {
137144
expectedReferrersCount = 3;
138145

139146
checkClassObjectReferrersCount(classObjectReference, expectedReferrersCount);
140-
141147
// disable collection and try unload class object
142148
classObjectReference.disableCollection();
143149

test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002a.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
2929
import nsk.share.jdi.HeapwalkingDebuggee;
3030
import java.io.*;
3131
import java.util.*;
32+
import sun.hotspot.WhiteBox;
3233

3334
/*
3435
* Class create and save given number of class instances
@@ -56,6 +57,8 @@ public class referringObjects002a extends HeapwalkingDebuggee {
5657

5758
final static public String COMMAND_DELETE_CLASS_OBJECT_REFERRERS = "deleteClassObjectReferrers";
5859

60+
private final WhiteBox WB = WhiteBox.getWhiteBox();
61+
5962
public static void main(String args[]) {
6063
new referringObjects002a().doTest(args);
6164
}
@@ -76,6 +79,9 @@ public void createClassObjectReferrers(String className, int instanceCount) {
7679

7780
for (String referenceType : ObjectInstancesManager.allReferenceTypes)
7881
classReferrers.add(new ReferringObject(klass, referenceType));
82+
// force full GC with WB to ensure that weak refernces are collected
83+
// j.l.i.MethodType has ConcurrentWeakInternSet which might contain references to TestClass1
84+
WB.fullGC();
7985
}
8086

8187
// delete all created references to class object

0 commit comments

Comments
 (0)