mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
Merge
This commit is contained in:
commit
4fc510cc89
101 changed files with 777 additions and 346 deletions
|
@ -207,43 +207,24 @@ class Bits { // package-private
|
|||
assert cnt >= 0 && reservedMem >= 0 && totalCap >= 0;
|
||||
}
|
||||
|
||||
// -- Monitoring of direct buffer usage --
|
||||
|
||||
static {
|
||||
// setup access to this package in SharedSecrets
|
||||
SharedSecrets.setJavaNioAccess(
|
||||
new JavaNioAccess() {
|
||||
@Override
|
||||
public JavaNioAccess.BufferPool getDirectBufferPool() {
|
||||
return new JavaNioAccess.BufferPool() {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "direct";
|
||||
}
|
||||
@Override
|
||||
public long getCount() {
|
||||
return Bits.COUNT.get();
|
||||
}
|
||||
@Override
|
||||
public long getTotalCapacity() {
|
||||
return Bits.TOTAL_CAPACITY.get();
|
||||
}
|
||||
@Override
|
||||
public long getMemoryUsed() {
|
||||
return Bits.RESERVED_MEMORY.get();
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob) {
|
||||
return new DirectByteBuffer(addr, cap, ob);
|
||||
}
|
||||
@Override
|
||||
public void truncate(Buffer buf) {
|
||||
buf.truncate();
|
||||
}
|
||||
});
|
||||
}
|
||||
static final JavaNioAccess.BufferPool BUFFER_POOL = new JavaNioAccess.BufferPool() {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "direct";
|
||||
}
|
||||
@Override
|
||||
public long getCount() {
|
||||
return Bits.COUNT.get();
|
||||
}
|
||||
@Override
|
||||
public long getTotalCapacity() {
|
||||
return Bits.TOTAL_CAPACITY.get();
|
||||
}
|
||||
@Override
|
||||
public long getMemoryUsed() {
|
||||
return Bits.RESERVED_MEMORY.get();
|
||||
}
|
||||
};
|
||||
|
||||
// These numbers represent the point at which we have empirically
|
||||
// determined that the average cost of a JNI call exceeds the expense
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
package java.nio;
|
||||
|
||||
import jdk.internal.HotSpotIntrinsicCandidate;
|
||||
import jdk.internal.misc.JavaNioAccess;
|
||||
import jdk.internal.misc.SharedSecrets;
|
||||
import jdk.internal.misc.Unsafe;
|
||||
|
||||
import java.util.Spliterator;
|
||||
|
@ -707,4 +709,23 @@ public abstract class Buffer {
|
|||
throw new IndexOutOfBoundsException();
|
||||
}
|
||||
|
||||
static {
|
||||
// setup access to this package in SharedSecrets
|
||||
SharedSecrets.setJavaNioAccess(
|
||||
new JavaNioAccess() {
|
||||
@Override
|
||||
public JavaNioAccess.BufferPool getDirectBufferPool() {
|
||||
return Bits.BUFFER_POOL;
|
||||
}
|
||||
@Override
|
||||
public ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob) {
|
||||
return new DirectByteBuffer(addr, cap, ob);
|
||||
}
|
||||
@Override
|
||||
public void truncate(Buffer buf) {
|
||||
buf.truncate();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -194,10 +194,9 @@ public class SharedSecrets {
|
|||
|
||||
public static JavaNioAccess getJavaNioAccess() {
|
||||
if (javaNioAccess == null) {
|
||||
// Ensure java.nio.ByteOrder is initialized; we know that
|
||||
// this class initializes java.nio.Bits that provides the
|
||||
// Ensure java.nio.Buffer is initialized, which provides the
|
||||
// shared secret.
|
||||
unsafe.ensureClassInitialized(java.nio.ByteOrder.class);
|
||||
unsafe.ensureClassInitialized(java.nio.Buffer.class);
|
||||
}
|
||||
return javaNioAccess;
|
||||
}
|
||||
|
|
|
@ -333,7 +333,6 @@ public class VerifyAccess {
|
|||
* @return whether they are in the same package
|
||||
*/
|
||||
public static boolean isSamePackage(Class<?> class1, Class<?> class2) {
|
||||
assert(!class1.isArray() && !class2.isArray());
|
||||
if (class1 == class2)
|
||||
return true;
|
||||
if (class1.getClassLoader() != class2.getClassLoader())
|
||||
|
|
|
@ -73,12 +73,20 @@ final class SSLAlgorithmConstraints implements AlgorithmConstraints {
|
|||
boolean withDefaultCertPathConstraints) {
|
||||
AlgorithmConstraints configuredConstraints = null;
|
||||
if (socket != null) {
|
||||
HandshakeContext hc =
|
||||
((SSLSocketImpl)socket).conContext.handshakeContext;
|
||||
if (hc != null) {
|
||||
configuredConstraints = hc.sslConfig.algorithmConstraints;
|
||||
// Note that the KeyManager or TrustManager implementation may be
|
||||
// not implemented in the same provider as SSLSocket/SSLEngine.
|
||||
// Please check the instance before casting to use SSLSocketImpl.
|
||||
if (socket instanceof SSLSocketImpl) {
|
||||
HandshakeContext hc =
|
||||
((SSLSocketImpl)socket).conContext.handshakeContext;
|
||||
if (hc != null) {
|
||||
configuredConstraints = hc.sslConfig.algorithmConstraints;
|
||||
} else {
|
||||
configuredConstraints = null;
|
||||
}
|
||||
} else {
|
||||
configuredConstraints = null;
|
||||
configuredConstraints =
|
||||
socket.getSSLParameters().getAlgorithmConstraints();
|
||||
}
|
||||
}
|
||||
this.userSpecifiedConstraints = configuredConstraints;
|
||||
|
@ -90,12 +98,20 @@ final class SSLAlgorithmConstraints implements AlgorithmConstraints {
|
|||
boolean withDefaultCertPathConstraints) {
|
||||
AlgorithmConstraints configuredConstraints = null;
|
||||
if (engine != null) {
|
||||
HandshakeContext hc =
|
||||
((SSLEngineImpl)engine).conContext.handshakeContext;
|
||||
if (hc != null) {
|
||||
configuredConstraints = hc.sslConfig.algorithmConstraints;
|
||||
// Note that the KeyManager or TrustManager implementation may be
|
||||
// not implemented in the same provider as SSLSocket/SSLEngine.
|
||||
// Please check the instance before casting to use SSLEngineImpl.
|
||||
if (engine instanceof SSLEngineImpl) {
|
||||
HandshakeContext hc =
|
||||
((SSLEngineImpl)engine).conContext.handshakeContext;
|
||||
if (hc != null) {
|
||||
configuredConstraints = hc.sslConfig.algorithmConstraints;
|
||||
} else {
|
||||
configuredConstraints = null;
|
||||
}
|
||||
} else {
|
||||
configuredConstraints = null;
|
||||
configuredConstraints =
|
||||
engine.getSSLParameters().getAlgorithmConstraints();
|
||||
}
|
||||
}
|
||||
this.userSpecifiedConstraints = configuredConstraints;
|
||||
|
|
|
@ -130,7 +130,8 @@ public class CLDRTimeZoneNameProviderImpl extends TimeZoneNameProviderImpl {
|
|||
|
||||
// Fill in for the empty names.
|
||||
// English names are prefilled for performance.
|
||||
if (locale.getLanguage() != "en") {
|
||||
if (!locale.equals(Locale.ENGLISH) &&
|
||||
!locale.equals(Locale.US)) {
|
||||
for (int zoneIndex = 0; zoneIndex < ret.length; zoneIndex++) {
|
||||
deriveFallbackNames(ret[zoneIndex], locale);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue