Merge
This commit is contained in:
commit
45a55f064e
jdk
src/java.base/share/native/include
test/java/lang
@ -333,15 +333,6 @@ JNIEXPORT jclass JNICALL
|
||||
JVM_FindClassFromCaller(JNIEnv *env, const char *name, jboolean init,
|
||||
jobject loader, jclass caller);
|
||||
|
||||
/*
|
||||
* Find a class from a given class loader. Throw ClassNotFoundException
|
||||
* or NoClassDefFoundError depending on the value of the last
|
||||
* argument.
|
||||
*/
|
||||
JNIEXPORT jclass JNICALL
|
||||
JVM_FindClassFromClassLoader(JNIEnv *env, const char *name, jboolean init,
|
||||
jobject loader, jboolean throwError);
|
||||
|
||||
/*
|
||||
* Find a class from a given class.
|
||||
*/
|
||||
|
@ -23,25 +23,48 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8060206
|
||||
* @bug 8060206 8067366
|
||||
* @summary Endorsed standards and override mechanism is removed
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class EndorsedDirs {
|
||||
public static void main(String arg[]) throws Exception {
|
||||
private static String[] VALUES = new String[] {
|
||||
null,
|
||||
"",
|
||||
"\"\""
|
||||
};
|
||||
public static void main(String... args) throws Exception {
|
||||
String value = System.getProperty("java.endorsed.dirs");
|
||||
System.out.format("java.endorsed.dirs = '%s'%n", value);
|
||||
if (args.length > 0) {
|
||||
int index = Integer.valueOf(args[0]);
|
||||
String expectedValue = VALUES[index];
|
||||
if (!(expectedValue == value ||
|
||||
(value != null && value.isEmpty()) ||
|
||||
(expectedValue != null & expectedValue.equals(value)))) {
|
||||
throw new RuntimeException("java.endorsed.dirs (" +
|
||||
value + ") != " + expectedValue);
|
||||
}
|
||||
// launched by subprocess.
|
||||
return;
|
||||
}
|
||||
|
||||
if (value != null) {
|
||||
throw new RuntimeException("java.endorsed.dirs not removed: " + value);
|
||||
}
|
||||
|
||||
fatalError("-Djava.endorsed.dirs=foo");
|
||||
fatalError(0, "-Djava.endorsed.dirs=foo");
|
||||
start(0);
|
||||
start(1, "-Djava.endorsed.dirs=");
|
||||
start(2, "-Djava.endorsed.dirs=\"\"");
|
||||
}
|
||||
|
||||
static void fatalError(String... args) throws Exception {
|
||||
static ProcessBuilder newProcessBuilder(int testParam, String... args) throws Exception {
|
||||
List<String> commands = new ArrayList<>();
|
||||
String java = System.getProperty("java.home") + "/bin/java";
|
||||
commands.add(java);
|
||||
@ -52,9 +75,22 @@ public class EndorsedDirs {
|
||||
commands.add("-cp");
|
||||
commands.add(cpath);
|
||||
commands.add("EndorsedDirs");
|
||||
commands.add(String.valueOf(testParam));
|
||||
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(commands);
|
||||
final Process process = processBuilder.start();
|
||||
System.out.println("Testing " + commands.stream().collect(Collectors.joining(" ")));
|
||||
return new ProcessBuilder(commands);
|
||||
}
|
||||
|
||||
static void start(int testParam, String... args) throws Exception {
|
||||
start(newProcessBuilder(testParam, args), false);
|
||||
}
|
||||
|
||||
static void fatalError(int testParam, String... args) throws Exception {
|
||||
start(newProcessBuilder(testParam, args), true);
|
||||
}
|
||||
|
||||
static void start(ProcessBuilder pb, boolean fatalError) throws Exception {
|
||||
final Process process = pb.start();
|
||||
BufferedReader errorStream = new BufferedReader(
|
||||
new InputStreamReader(process.getErrorStream()));
|
||||
BufferedReader outStream = new BufferedReader(
|
||||
@ -72,11 +108,15 @@ public class EndorsedDirs {
|
||||
System.err.println(errorLine);
|
||||
process.waitFor(1000, TimeUnit.MILLISECONDS);
|
||||
int exitStatus = process.exitValue();
|
||||
if (exitStatus == 0) {
|
||||
throw new RuntimeException("Expect fatal error");
|
||||
}
|
||||
if (!errorLine.contains("Could not create the Java Virtual Machine")) {
|
||||
throw new RuntimeException(errorLine);
|
||||
if (fatalError) {
|
||||
if (exitStatus == 0) {
|
||||
throw new RuntimeException("Expected fatal error");
|
||||
}
|
||||
if (!errorLine.contains("Could not create the Java Virtual Machine")) {
|
||||
throw new RuntimeException(errorLine);
|
||||
}
|
||||
} else if (exitStatus != 0) {
|
||||
throw new RuntimeException("Failed: " + errorLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,25 +23,49 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8060206
|
||||
* @bug 8060206 8067366
|
||||
* @summary Extension mechanism is removed
|
||||
*/
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.Integer;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ExtDirs {
|
||||
public static void main(String arg[]) throws Exception {
|
||||
private static String[] VALUES = new String[] {
|
||||
null,
|
||||
"",
|
||||
"\"\""
|
||||
};
|
||||
public static void main(String... args) throws Exception {
|
||||
String value = System.getProperty("java.ext.dirs");
|
||||
System.out.format("java.ext.dirs = '%s'%n", value);
|
||||
if (args.length > 0) {
|
||||
int index = Integer.valueOf(args[0]);
|
||||
String expectedValue = VALUES[index];
|
||||
if (!(expectedValue == value ||
|
||||
(value != null && value.isEmpty()) ||
|
||||
(expectedValue != null & expectedValue.equals(value)))) {
|
||||
throw new RuntimeException("java.ext.dirs (" +
|
||||
value + ") != " + expectedValue);
|
||||
}
|
||||
// launched by subprocess.
|
||||
return;
|
||||
}
|
||||
|
||||
if (value != null) {
|
||||
throw new RuntimeException("java.ext.dirs not removed: " + value);
|
||||
}
|
||||
|
||||
fatalError("-Djava.ext.dirs=foo");
|
||||
fatalError(0, "-Djava.ext.dirs=foo");
|
||||
start(0);
|
||||
start(1, "-Djava.ext.dirs=");
|
||||
start(2, "-Djava.ext.dirs=\"\"");
|
||||
}
|
||||
|
||||
static void fatalError(String... args) throws Exception {
|
||||
static ProcessBuilder newProcessBuilder(int testParam, String... args) throws Exception {
|
||||
List<String> commands = new ArrayList<>();
|
||||
String java = System.getProperty("java.home") + "/bin/java";
|
||||
commands.add(java);
|
||||
@ -52,9 +76,22 @@ public class ExtDirs {
|
||||
commands.add("-cp");
|
||||
commands.add(cpath);
|
||||
commands.add("ExtDirs");
|
||||
commands.add(String.valueOf(testParam));
|
||||
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(commands);
|
||||
final Process process = processBuilder.start();
|
||||
System.out.println("Testing " + commands.stream().collect(Collectors.joining(" ")));
|
||||
return new ProcessBuilder(commands);
|
||||
}
|
||||
|
||||
static void start(int testParam, String... args) throws Exception {
|
||||
start(newProcessBuilder(testParam, args), false);
|
||||
}
|
||||
|
||||
static void fatalError(int testParam, String... args) throws Exception {
|
||||
start(newProcessBuilder(testParam, args), true);
|
||||
}
|
||||
|
||||
static void start(ProcessBuilder pb, boolean fatalError) throws Exception {
|
||||
final Process process = pb.start();
|
||||
BufferedReader errorStream = new BufferedReader(
|
||||
new InputStreamReader(process.getErrorStream()));
|
||||
BufferedReader outStream = new BufferedReader(
|
||||
@ -72,11 +109,15 @@ public class ExtDirs {
|
||||
System.err.println(errorLine);
|
||||
process.waitFor(1000, TimeUnit.MILLISECONDS);
|
||||
int exitStatus = process.exitValue();
|
||||
if (exitStatus == 0) {
|
||||
throw new RuntimeException("Expect fatal error");
|
||||
}
|
||||
if (!errorLine.contains("Could not create the Java Virtual Machine")) {
|
||||
throw new RuntimeException(errorLine);
|
||||
if (fatalError) {
|
||||
if (exitStatus == 0) {
|
||||
throw new RuntimeException("Expected fatal error");
|
||||
}
|
||||
if (!errorLine.contains("Could not create the Java Virtual Machine")) {
|
||||
throw new RuntimeException(errorLine);
|
||||
}
|
||||
} else if (exitStatus != 0) {
|
||||
throw new RuntimeException("Failed: " + errorLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -35,11 +35,13 @@
|
||||
* @run main/timeout=600 LowMemoryTest
|
||||
*/
|
||||
|
||||
import com.sun.management.DiagnosticCommandMBean;
|
||||
import java.lang.management.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.Phaser;
|
||||
import javax.management.*;
|
||||
import javax.management.openmbean.CompositeData;
|
||||
import sun.management.ManagementFactoryHelper;
|
||||
|
||||
public class LowMemoryTest {
|
||||
private static final MemoryMXBean mm = ManagementFactory.getMemoryMXBean();
|
||||
@ -94,9 +96,15 @@ public class LowMemoryTest {
|
||||
}
|
||||
|
||||
static class TestListener implements NotificationListener {
|
||||
private boolean isRelaxed = false;
|
||||
private int triggers = 0;
|
||||
private final long[] count = new long[NUM_TRIGGERS * 2];
|
||||
private final long[] usedMemory = new long[NUM_TRIGGERS * 2];
|
||||
|
||||
public TestListener() {
|
||||
isRelaxed = ManagementFactory.getRuntimeMXBean().getInputArguments().contains("-XX:+UseConcMarkSweepGC");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleNotification(Notification notif, Object handback) {
|
||||
MemoryNotificationInfo minfo = MemoryNotificationInfo.
|
||||
@ -106,7 +114,8 @@ public class LowMemoryTest {
|
||||
triggers++;
|
||||
}
|
||||
public void checkResult() throws Exception {
|
||||
if (triggers != NUM_TRIGGERS) {
|
||||
if ((!isRelaxed && triggers != NUM_TRIGGERS) ||
|
||||
(isRelaxed && triggers < NUM_TRIGGERS)) {
|
||||
throw new RuntimeException("Unexpected number of triggers = " +
|
||||
triggers + " but expected to be " + NUM_TRIGGERS);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user