8154457: runtime/SharedArchiveFile/SharedStrings Shared string table stats missing

Added more information when print out message reporting disabling the shared strings at CDS dump time.

Reviewed-by: lfoltan, hseigel, mseledtsov, gtriantafill
This commit is contained in:
Jiangli Zhou 2016-04-20 16:04:38 -04:00
parent 4ba6969ac6
commit 2d65e6174c
2 changed files with 41 additions and 23 deletions

View file

@ -730,8 +730,12 @@ void StringTable::serialize(SerializeClosure* soc, GrowableArray<MemRegion> *str
if (soc->writing()) {
if (!(UseG1GC && UseCompressedOops && UseCompressedClassPointers)) {
if (PrintSharedSpaces) {
tty->print_cr("Shared strings are excluded from the archive as UseG1GC, "
"UseCompressedOops and UseCompressedClassPointers are required.");
tty->print_cr(
"Shared strings are excluded from the archive as UseG1GC, "
"UseCompressedOops and UseCompressedClassPointers are required."
"Current settings: UseG1GC=%s, UseCompressedOops=%s, UseCompressedClassPointers=%s.",
BOOL_TO_STR(UseG1GC), BOOL_TO_STR(UseCompressedOops),
BOOL_TO_STR(UseCompressedClassPointers));
}
} else {
int num_buckets = the_table()->number_of_entries() /

View file

@ -40,19 +40,32 @@ import jdk.test.lib.*;
public class SharedStrings {
public static void main(String[] args) throws Exception {
boolean test_runtime = true;
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-XX:+UnlockDiagnosticVMOptions",
"-XX:SharedArchiveFile=./SharedStrings.jsa",
"-XX:+UseG1GC",
"-XX:+UseCompressedOops",
"-XX:+PrintSharedSpaces",
// Needed for bootclasspath match, for CDS to work with WhiteBox API
"-Xbootclasspath/a:" + ClassFileInstaller.getJarPath("whitebox.jar"),
"-Xshare:dump");
new OutputAnalyzer(pb.start())
.shouldContain("Loading classes to share")
.shouldContain("Shared string table stats")
.shouldHaveExitValue(0);
OutputAnalyzer dumpOutput = new OutputAnalyzer(pb.start());
try {
dumpOutput.shouldContain("Loading classes to share");
dumpOutput.shouldContain("Shared string table stats");
dumpOutput.shouldHaveExitValue(0);
} catch (RuntimeException e) {
if (dumpOutput.getOutput().indexOf("Shared strings are excluded") != -1 ||
dumpOutput.getOutput().indexOf("Cannot dump shared archive") != -1) {
test_runtime = false;
} else {
throw new RuntimeException("Unexpected failure");
}
}
if (test_runtime) {
pb = ProcessTools.createJavaProcessBuilder(
"-XX:+UnlockDiagnosticVMOptions",
"-XX:SharedArchiveFile=./SharedStrings.jsa",
@ -74,3 +87,4 @@ public class SharedStrings {
}
}
}
}