Merge
This commit is contained in:
commit
f4daa36dfe
jdk
src/share/classes/java
lang/invoke
BoundMethodHandle.javaInnerClassLambdaMetafactory.javaInvokerBytecodeGenerator.javaTypeConvertingMethodAdapter.java
util/stream
test
ProblemList.txt
com/sun/jdi
java
net/ipv6tests
util/concurrent
BlockingQueue
CancelledProducerConsumerLoops.javaMultipleProducersSingleConsumerLoops.javaProducerConsumerLoops.javaSingleProducerMultipleConsumerLoops.java
ConcurrentHashMap
Exchanger
ExecutorCompletionService
FutureTask
atomic
locks
ReentrantLock
CancelledLockLoops.javaLockOncePerThreadLoops.javaSimpleReentrantLockLoops.javaTimeoutLockLoops.java
ReentrantReadWriteLock
sun/management/jmxremote
@ -611,7 +611,7 @@ import jdk.internal.org.objectweb.asm.Type;
|
||||
mv.visitVarInsn(ALOAD, 1);
|
||||
mv.visitVarInsn(ALOAD, 2);
|
||||
|
||||
mv.visitMethodInsn(INVOKESPECIAL, BMH, "<init>", makeSignature("", true));
|
||||
mv.visitMethodInsn(INVOKESPECIAL, BMH, "<init>", makeSignature("", true), false);
|
||||
|
||||
for (int i = 0, j = 0; i < types.length(); ++i, ++j) {
|
||||
// i counts the arguments, j counts corresponding argument slots
|
||||
@ -662,7 +662,7 @@ import jdk.internal.org.objectweb.asm.Type;
|
||||
// put fields on the stack
|
||||
emitPushFields(types, className, mv);
|
||||
// finally, invoke the constructor and return
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, MH, "invokeBasic", makeSignature(types, false));
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, MH, "invokeBasic", makeSignature(types, false), false);
|
||||
mv.visitInsn(ARETURN);
|
||||
mv.visitMaxs(0, 0);
|
||||
mv.visitEnd();
|
||||
@ -678,7 +678,7 @@ import jdk.internal.org.objectweb.asm.Type;
|
||||
int iconstInsn = ICONST_0 + extensionIndex(t);
|
||||
assert(iconstInsn <= ICONST_5);
|
||||
mv.visitInsn(iconstInsn);
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, SPECIES_DATA, "extendWithIndex", BMHSPECIES_DATA_EWI_SIG);
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, SPECIES_DATA, "extendWithIndex", BMHSPECIES_DATA_EWI_SIG, false);
|
||||
mv.visitFieldInsn(GETFIELD, SPECIES_DATA, "constructor", "[" + MH_SIG);
|
||||
mv.visitInsn(ICONST_0);
|
||||
mv.visitInsn(AALOAD);
|
||||
@ -690,7 +690,7 @@ import jdk.internal.org.objectweb.asm.Type;
|
||||
// put narg on stack
|
||||
mv.visitVarInsn(typeLoadOp(t), 3);
|
||||
// finally, invoke the constructor and return
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, MH, "invokeBasic", makeSignature(types + t, false));
|
||||
mv.visitMethodInsn(INVOKEVIRTUAL, MH, "invokeBasic", makeSignature(types + t, false), false);
|
||||
mv.visitInsn(ARETURN);
|
||||
mv.visitMaxs(0, 0);
|
||||
mv.visitEnd();
|
||||
@ -701,7 +701,7 @@ import jdk.internal.org.objectweb.asm.Type;
|
||||
mv.visitCode();
|
||||
mv.visitLdcInsn(types);
|
||||
mv.visitLdcInsn(Type.getObjectType(className));
|
||||
mv.visitMethodInsn(INVOKESTATIC, SPECIES_DATA, "getForClass", BMHSPECIES_DATA_GFC_SIG);
|
||||
mv.visitMethodInsn(INVOKESTATIC, SPECIES_DATA, "getForClass", BMHSPECIES_DATA_GFC_SIG, false);
|
||||
mv.visitFieldInsn(PUTSTATIC, className, "SPECIES_DATA", SPECIES_DATA_SIG);
|
||||
mv.visitInsn(RETURN);
|
||||
mv.visitMaxs(0, 0);
|
||||
|
@ -193,10 +193,10 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
||||
CallSite buildCallSite() throws LambdaConversionException {
|
||||
final Class<?> innerClass = spinInnerClass();
|
||||
if (invokedType.parameterCount() == 0) {
|
||||
final Constructor[] ctrs = AccessController.doPrivileged(
|
||||
new PrivilegedAction<Constructor[]>() {
|
||||
final Constructor<?>[] ctrs = AccessController.doPrivileged(
|
||||
new PrivilegedAction<Constructor<?>[]>() {
|
||||
@Override
|
||||
public Constructor[] run() {
|
||||
public Constructor<?>[] run() {
|
||||
Constructor<?>[] ctrs = innerClass.getDeclaredConstructors();
|
||||
if (ctrs.length == 1) {
|
||||
// The lambda implementing inner class constructor is private, set
|
||||
@ -338,7 +338,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
||||
m.visitVarInsn(getLoadOpcode(argType), varIndex);
|
||||
varIndex += getParameterSize(argType);
|
||||
}
|
||||
m.visitMethodInsn(INVOKESPECIAL, lambdaClassName, NAME_CTOR, constructorType.toMethodDescriptorString());
|
||||
m.visitMethodInsn(INVOKESPECIAL, lambdaClassName, NAME_CTOR, constructorType.toMethodDescriptorString(), false);
|
||||
m.visitInsn(ARETURN);
|
||||
m.visitMaxs(-1, -1);
|
||||
m.visitEnd();
|
||||
@ -354,7 +354,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
||||
ctor.visitCode();
|
||||
ctor.visitVarInsn(ALOAD, 0);
|
||||
ctor.visitMethodInsn(INVOKESPECIAL, JAVA_LANG_OBJECT, NAME_CTOR,
|
||||
METHOD_DESCRIPTOR_VOID);
|
||||
METHOD_DESCRIPTOR_VOID, false);
|
||||
int parameterCount = invokedType.parameterCount();
|
||||
for (int i = 0, lvIndex = 0; i < parameterCount; i++) {
|
||||
ctor.visitVarInsn(ALOAD, 0);
|
||||
@ -402,7 +402,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
||||
mv.visitInsn(AASTORE);
|
||||
}
|
||||
mv.visitMethodInsn(INVOKESPECIAL, NAME_SERIALIZED_LAMBDA, NAME_CTOR,
|
||||
DESCR_CTOR_SERIALIZED_LAMBDA);
|
||||
DESCR_CTOR_SERIALIZED_LAMBDA, false);
|
||||
mv.visitInsn(ARETURN);
|
||||
// Maxs computed by ClassWriter.COMPUTE_MAXS, these arguments ignored
|
||||
mv.visitMaxs(-1, -1);
|
||||
@ -421,7 +421,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
||||
mv.visitInsn(DUP);
|
||||
mv.visitLdcInsn("Non-serializable lambda");
|
||||
mv.visitMethodInsn(INVOKESPECIAL, NAME_NOT_SERIALIZABLE_EXCEPTION, NAME_CTOR,
|
||||
DESCR_CTOR_NOT_SERIALIZABLE_EXCEPTION);
|
||||
DESCR_CTOR_NOT_SERIALIZABLE_EXCEPTION, false);
|
||||
mv.visitInsn(ATHROW);
|
||||
mv.visitMaxs(-1, -1);
|
||||
mv.visitEnd();
|
||||
@ -434,7 +434,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
||||
mv.visitInsn(DUP);
|
||||
mv.visitLdcInsn("Non-serializable lambda");
|
||||
mv.visitMethodInsn(INVOKESPECIAL, NAME_NOT_SERIALIZABLE_EXCEPTION, NAME_CTOR,
|
||||
DESCR_CTOR_NOT_SERIALIZABLE_EXCEPTION);
|
||||
DESCR_CTOR_NOT_SERIALIZABLE_EXCEPTION, false);
|
||||
mv.visitInsn(ATHROW);
|
||||
mv.visitMaxs(-1, -1);
|
||||
mv.visitEnd();
|
||||
|
@ -403,7 +403,7 @@ class InvokerBytecodeGenerator {
|
||||
String owner = "java/lang/" + wrapper.wrapperType().getSimpleName();
|
||||
String name = "valueOf";
|
||||
String desc = "(" + wrapper.basicTypeChar() + ")L" + owner + ";";
|
||||
mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc);
|
||||
mv.visitMethodInsn(Opcodes.INVOKESTATIC, owner, name, desc, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -417,7 +417,7 @@ class InvokerBytecodeGenerator {
|
||||
String name = wrapper.primitiveSimpleName() + "Value";
|
||||
String desc = "()" + wrapper.basicTypeChar();
|
||||
mv.visitTypeInsn(Opcodes.CHECKCAST, owner);
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, owner, name, desc);
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, owner, name, desc, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -437,7 +437,7 @@ class InvokerBytecodeGenerator {
|
||||
mv.visitLdcInsn(constantPlaceholder(pclass));
|
||||
mv.visitTypeInsn(Opcodes.CHECKCAST, CLS);
|
||||
mv.visitInsn(Opcodes.SWAP);
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CLS, "cast", LL_SIG);
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CLS, "cast", LL_SIG, false);
|
||||
if (pclass.isArray())
|
||||
mv.visitTypeInsn(Opcodes.CHECKCAST, OBJARY);
|
||||
}
|
||||
@ -570,7 +570,7 @@ class InvokerBytecodeGenerator {
|
||||
|
||||
// invocation
|
||||
MethodType type = name.function.methodType();
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, MH, "invokeBasic", type.basicType().toMethodDescriptorString());
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, MH, "invokeBasic", type.basicType().toMethodDescriptorString(), false);
|
||||
}
|
||||
|
||||
static private Class<?>[] STATICALLY_INVOCABLE_PACKAGES = {
|
||||
@ -944,7 +944,7 @@ class InvokerBytecodeGenerator {
|
||||
emitAloadInsn(0);
|
||||
mv.visitFieldInsn(Opcodes.GETFIELD, MH, "form", "Ljava/lang/invoke/LambdaForm;");
|
||||
mv.visitInsn(Opcodes.SWAP); // swap form and array; avoid local variable
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, LF, "interpretWithArguments", "([Ljava/lang/Object;)Ljava/lang/Object;");
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, LF, "interpretWithArguments", "([Ljava/lang/Object;)Ljava/lang/Object;", false);
|
||||
|
||||
// maybe unbox
|
||||
Class<?> rtype = invokerType.returnType();
|
||||
@ -1007,7 +1007,7 @@ class InvokerBytecodeGenerator {
|
||||
|
||||
// Invoke
|
||||
String targetDesc = dstType.basicType().toMethodDescriptorString();
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, MH, "invokeBasic", targetDesc);
|
||||
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, MH, "invokeBasic", targetDesc, false);
|
||||
|
||||
// Box primitive types
|
||||
Class<?> rtype = dstType.returnType();
|
||||
|
@ -158,19 +158,19 @@ class TypeConvertingMethodAdapter extends MethodVisitor {
|
||||
visitMethodInsn(Opcodes.INVOKESTATIC,
|
||||
wrapperName(w),
|
||||
NAME_BOX_METHOD,
|
||||
boxingDescriptor(w));
|
||||
boxingDescriptor(w), false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert types by unboxing. The source type is known to be a primitive wrapper.
|
||||
* @param ws A primitive wrapper corresponding to wrapped reference source type
|
||||
* @param sname A primitive wrapper corresponding to wrapped reference source type
|
||||
* @param wt A primitive wrapper being converted to
|
||||
*/
|
||||
void unbox(String sname, Wrapper wt) {
|
||||
visitMethodInsn(Opcodes.INVOKEVIRTUAL,
|
||||
sname,
|
||||
unboxMethod(wt),
|
||||
unboxingDescriptor(wt));
|
||||
unboxingDescriptor(wt), false);
|
||||
}
|
||||
|
||||
private String descriptorToName(String desc) {
|
||||
|
@ -32,6 +32,7 @@ import java.util.concurrent.ForkJoinTask;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.DoubleConsumer;
|
||||
import java.util.function.IntConsumer;
|
||||
import java.util.function.IntFunction;
|
||||
import java.util.function.LongConsumer;
|
||||
|
||||
/**
|
||||
@ -471,9 +472,11 @@ final class ForEachOps {
|
||||
if (task.getPendingCount() > 0) {
|
||||
// Cannot complete just yet so buffer elements into a Node
|
||||
// for use when completion occurs
|
||||
@SuppressWarnings("unchecked")
|
||||
IntFunction<T[]> generator = size -> (T[]) new Object[size];
|
||||
Node.Builder<T> nb = task.helper.makeNodeBuilder(
|
||||
task.helper.exactOutputSizeIfKnown(rightSplit),
|
||||
size -> (T[]) new Object[size]);
|
||||
generator);
|
||||
task.node = task.helper.wrapAndCopyInto(nb, rightSplit).build();
|
||||
task.spliterator = null;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ final class Nodes {
|
||||
// IllegalArgumentException messages
|
||||
static final String BAD_SIZE = "Stream size exceeds max array size";
|
||||
|
||||
@SuppressWarnings("raw")
|
||||
@SuppressWarnings("rawtypes")
|
||||
private static final Node EMPTY_NODE = new EmptyNode.OfRef();
|
||||
private static final Node.OfInt EMPTY_INT_NODE = new EmptyNode.OfInt();
|
||||
private static final Node.OfLong EMPTY_LONG_NODE = new EmptyNode.OfLong();
|
||||
@ -956,6 +956,7 @@ final class Nodes {
|
||||
* Initiate a stack containing, in left-to-right order, the child nodes
|
||||
* covered by this spliterator
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected final Deque<N> initStack() {
|
||||
// Bias size to the case where leaf nodes are close to this node
|
||||
// 8 is the minimum initial capacity for the ArrayDeque implementation
|
||||
@ -969,6 +970,7 @@ final class Nodes {
|
||||
* Depth first search, in left-to-right order, of the node tree, using
|
||||
* an explicit stack, to find the next non-empty leaf node.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected final N findNextLeafNode(Deque<N> stack) {
|
||||
N n = null;
|
||||
while ((n = stack.pollFirst()) != null) {
|
||||
@ -984,6 +986,7 @@ final class Nodes {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected final boolean initTryAdvance() {
|
||||
if (curNode == null)
|
||||
return false;
|
||||
@ -1870,6 +1873,7 @@ final class Nodes {
|
||||
}
|
||||
|
||||
assert task.offset + task.length < MAX_ARRAY_SIZE;
|
||||
@SuppressWarnings("unchecked")
|
||||
T_SINK sink = (T_SINK) task;
|
||||
task.helper.wrapAndCopyInto(sink, rightSplit);
|
||||
task.propagateCompletion();
|
||||
@ -2173,6 +2177,7 @@ final class Nodes {
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
protected T_NODE doLeaf() {
|
||||
T_BUILDER builder = builderFactory.apply(helper.exactOutputSizeIfKnown(spliterator));
|
||||
return (T_NODE) helper.wrapAndCopyInto(builder, spliterator).build();
|
||||
|
@ -29,7 +29,6 @@ import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Objects;
|
||||
import java.util.Spliterator;
|
||||
import java.util.concurrent.ForkJoinTask;
|
||||
import java.util.function.IntFunction;
|
||||
|
||||
|
||||
@ -113,7 +112,9 @@ final class SortedOps {
|
||||
StreamOpFlag.IS_ORDERED | StreamOpFlag.IS_SORTED);
|
||||
this.isNaturalSort = true;
|
||||
// Will throw CCE when we try to sort if T is not Comparable
|
||||
this.comparator = (Comparator<? super T>) Comparator.naturalOrder();
|
||||
@SuppressWarnings("unchecked")
|
||||
Comparator<? super T> comp = (Comparator<? super T>) Comparator.naturalOrder();
|
||||
this.comparator = comp;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -170,7 +171,7 @@ final class SortedOps {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sink<Integer> opWrapSink(int flags, Sink sink) {
|
||||
public Sink<Integer> opWrapSink(int flags, Sink<Integer> sink) {
|
||||
Objects.requireNonNull(sink);
|
||||
|
||||
if (StreamOpFlag.SORTED.isKnown(flags))
|
||||
@ -291,6 +292,7 @@ final class SortedOps {
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void begin(long size) {
|
||||
if (size >= Nodes.MAX_ARRAY_SIZE)
|
||||
throw new IllegalArgumentException(Nodes.BAD_SIZE);
|
||||
|
@ -92,6 +92,7 @@ class SpinedBuffer<E>
|
||||
* @throws IllegalArgumentException if the specified initial capacity
|
||||
* is negative
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
SpinedBuffer(int initialCapacity) {
|
||||
super(initialCapacity);
|
||||
curChunk = (E[]) new Object[1 << initialChunkPower];
|
||||
@ -100,6 +101,7 @@ class SpinedBuffer<E>
|
||||
/**
|
||||
* Constructs an empty list with an initial capacity of sixteen.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
SpinedBuffer() {
|
||||
super();
|
||||
curChunk = (E[]) new Object[1 << initialChunkPower];
|
||||
@ -114,6 +116,7 @@ class SpinedBuffer<E>
|
||||
: priorElementCount[spineIndex] + spine[spineIndex].length;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void inflateSpine() {
|
||||
if (spine == null) {
|
||||
spine = (E[][]) new Object[MIN_SPINE_SIZE][];
|
||||
@ -125,6 +128,7 @@ class SpinedBuffer<E>
|
||||
/**
|
||||
* Ensure that the buffer has at least capacity to hold the target size
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected final void ensureCapacity(long targetSize) {
|
||||
long capacity = capacity();
|
||||
if (targetSize > capacity) {
|
||||
|
@ -516,6 +516,7 @@ class StreamSpliterators {
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public T_SPLITR trySplit() {
|
||||
return (T_SPLITR) get().trySplit();
|
||||
}
|
||||
@ -643,6 +644,7 @@ class StreamSpliterators {
|
||||
// existing and additionally created F/J tasks that perform
|
||||
// redundant work on no elements.
|
||||
while (true) {
|
||||
@SuppressWarnings("unchecked")
|
||||
T_SPLITR leftSplit = (T_SPLITR) s.trySplit();
|
||||
if (leftSplit == null)
|
||||
return null;
|
||||
@ -970,6 +972,7 @@ class StreamSpliterators {
|
||||
// Stop splitting when there are no more limit permits
|
||||
if (permits.get() == 0)
|
||||
return null;
|
||||
@SuppressWarnings("unchecked")
|
||||
T_SPLITR split = (T_SPLITR) s.trySplit();
|
||||
return split == null ? null : makeSpliterator(split);
|
||||
}
|
||||
@ -1068,16 +1071,18 @@ class StreamSpliterators {
|
||||
super(s, skip, limit);
|
||||
}
|
||||
|
||||
OfPrimitive(T_SPLITR s, UnorderedSliceSpliterator.OfPrimitive parent) {
|
||||
OfPrimitive(T_SPLITR s, UnorderedSliceSpliterator.OfPrimitive<T, T_CONS, T_BUFF, T_SPLITR> parent) {
|
||||
super(s, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean tryAdvance(T_CONS action) {
|
||||
Objects.requireNonNull(action);
|
||||
@SuppressWarnings("unchecked")
|
||||
T_CONS consumer = (T_CONS) this;
|
||||
|
||||
while (permitStatus() != PermitStatus.NO_MORE) {
|
||||
if (!s.tryAdvance((T_CONS) this))
|
||||
if (!s.tryAdvance(consumer))
|
||||
return false;
|
||||
else if (acquirePermits(1) == 1) {
|
||||
acceptConsumed(action);
|
||||
@ -1316,7 +1321,7 @@ class StreamSpliterators {
|
||||
* estimate size is 0.
|
||||
*
|
||||
* <p>The {@code forEachRemaining} method if invoked will never terminate.
|
||||
* The {@coe tryAdvance} method always returns true.
|
||||
* The {@code tryAdvance} method always returns true.
|
||||
*
|
||||
*/
|
||||
static abstract class InfiniteSupplyingSpliterator<T> implements Spliterator<T> {
|
||||
|
@ -715,6 +715,7 @@ final class Streams {
|
||||
|
||||
@Override
|
||||
public T_SPLITR trySplit() {
|
||||
@SuppressWarnings("unchecked")
|
||||
T_SPLITR ret = beforeSplit ? aSpliterator : (T_SPLITR) bSpliterator.trySplit();
|
||||
beforeSplit = false;
|
||||
return ret;
|
||||
|
@ -123,11 +123,6 @@
|
||||
# 8029415
|
||||
java/lang/reflect/Method/invoke/TestPrivateInterfaceMethodReflect.java generic-all
|
||||
|
||||
# 8030656
|
||||
java/lang/reflect/Parameter/GetAnnotatedTypeTest.java generic-all
|
||||
java/lang/reflect/Parameter/WithParameters.java generic-all
|
||||
java/lang/reflect/Parameter/BadClassFiles.java generic-all
|
||||
|
||||
############################################################################
|
||||
|
||||
# jdk_management
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 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
|
||||
@ -85,7 +85,7 @@ public class BadHandshakeTest {
|
||||
success.set(line.contains("Listening for transport dt_socket at address:"));
|
||||
return true;
|
||||
},
|
||||
1500,
|
||||
Integer.MAX_VALUE,
|
||||
TimeUnit.MILLISECONDS
|
||||
);
|
||||
|
||||
|
@ -147,6 +147,7 @@ public class UdpTest extends Tests {
|
||||
final InetAddress ia6 = ia6addr;
|
||||
final int port = s1.getLocalPort();
|
||||
|
||||
s1.setSoTimeout(10000);
|
||||
runAfter (2000, new Runnable () {
|
||||
public void run () {
|
||||
try {
|
||||
@ -157,7 +158,7 @@ public class UdpTest extends Tests {
|
||||
});
|
||||
t1 = System.currentTimeMillis();
|
||||
s1.receive (new DatagramPacket (new byte [128], 128));
|
||||
checkTime (System.currentTimeMillis() - t1, 2000);
|
||||
checkTime (System.currentTimeMillis() - t1, 4000);
|
||||
s1.close ();
|
||||
s2.close ();
|
||||
System.out.println ("Test2: OK");
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 CancelledProducerConsumerLoops.java
|
||||
* @run main/timeout=7000 CancelledProducerConsumerLoops
|
||||
* @summary Checks for responsiveness of blocking queues to cancellation.
|
||||
* Runs under the assumption that ITERS computations require more than
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 MultipleProducersSingleConsumerLoops.java
|
||||
* @run main/timeout=3600 MultipleProducersSingleConsumerLoops
|
||||
* @summary multiple producers and single consumer using blocking queues
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 ProducerConsumerLoops.java
|
||||
* @run main/timeout=3600 ProducerConsumerLoops
|
||||
* @summary multiple producers and consumers using blocking queues
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 SingleProducerMultipleConsumerLoops.java
|
||||
* @run main/timeout=600 SingleProducerMultipleConsumerLoops
|
||||
* @summary check ordering for blocking queues with 1 producer and multiple consumers
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 MapCheck.java
|
||||
* @run main/timeout=240 MapCheck
|
||||
* @summary Times and checks basic map operations
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 MapLoops.java
|
||||
* @run main/timeout=1600 MapLoops
|
||||
* @summary Exercise multithreaded maps, by default ConcurrentHashMap.
|
||||
* Multithreaded hash table test. Each thread does a random walk
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 ExchangeLoops.java
|
||||
* @run main/timeout=720 ExchangeLoops
|
||||
* @summary checks to make sure a pipeline of exchangers passes data.
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4965960
|
||||
* @compile -source 1.5 ExecutorCompletionServiceLoops.java
|
||||
* @run main/timeout=3600 ExecutorCompletionServiceLoops
|
||||
* @summary Exercise ExecutorCompletionServiceLoops
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 CancelledFutureLoops.java
|
||||
* @run main/timeout=2000 CancelledFutureLoops
|
||||
* @summary Checks for responsiveness of futures to cancellation.
|
||||
* Runs under the assumption that ITERS computations require more than
|
||||
|
@ -24,7 +24,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4992443 4994819
|
||||
* @compile -source 1.5 VMSupportsCS8.java
|
||||
* @run main VMSupportsCS8
|
||||
* @summary Checks that the value of VMSupportsCS8 matches system properties.
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 CancelledLockLoops.java
|
||||
* @run main/timeout=2800 CancelledLockLoops
|
||||
* @summary tests lockInterruptibly.
|
||||
* Checks for responsiveness of locks to interrupts. Runs under that
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 LockOncePerThreadLoops.java
|
||||
* @run main/timeout=15000 LockOncePerThreadLoops
|
||||
* @summary Checks for missed signals by locking and unlocking each of an array of locks once per thread
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 SimpleReentrantLockLoops.java
|
||||
* @run main/timeout=4500 SimpleReentrantLockLoops
|
||||
* @summary multiple threads using a single lock
|
||||
*/
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658 5031862
|
||||
* @compile -source 1.5 TimeoutLockLoops.java
|
||||
* @run main TimeoutLockLoops
|
||||
* @summary Checks for responsiveness of locks to timeouts.
|
||||
* Runs under the assumption that ITERS computations require more than
|
||||
|
@ -34,7 +34,6 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4486658
|
||||
* @compile -source 1.5 MapLoops.java
|
||||
* @run main/timeout=4700 MapLoops
|
||||
* @summary Exercise multithreaded maps, by default ConcurrentHashMap.
|
||||
* Multithreaded hash table test. Each thread does a random walk
|
||||
|
@ -44,6 +44,7 @@ public class LocalRMIServerSocketFactoryTest {
|
||||
|
||||
private static final SynchronousQueue<Exception> queue =
|
||||
new SynchronousQueue<Exception>();
|
||||
private static volatile boolean isRunning = true;
|
||||
|
||||
static final class Result extends Exception {
|
||||
|
||||
@ -91,19 +92,23 @@ public class LocalRMIServerSocketFactoryTest {
|
||||
Thread t = new Thread() {
|
||||
|
||||
public void run() {
|
||||
while (true) {
|
||||
while (isRunning) {
|
||||
Exception error = Result.SUCCESS;
|
||||
try {
|
||||
System.err.println("Accepting: ");
|
||||
final Socket ss = s.accept();
|
||||
System.err.println(ss.getInetAddress() + " accepted");
|
||||
} catch (Exception x) {
|
||||
x.printStackTrace();
|
||||
if (isRunning) {
|
||||
x.printStackTrace();
|
||||
}
|
||||
error = x;
|
||||
} finally {
|
||||
try {
|
||||
// wait for the client to get the exception.
|
||||
queue.put(error);
|
||||
if (isRunning) {
|
||||
// wait for the client to get the exception.
|
||||
queue.put(error);
|
||||
}
|
||||
} catch (Exception x) {
|
||||
// too bad!
|
||||
System.err.println("Could't send result to client!");
|
||||
@ -114,32 +119,38 @@ public class LocalRMIServerSocketFactoryTest {
|
||||
}
|
||||
}
|
||||
};
|
||||
t.setDaemon(true);
|
||||
t.start();
|
||||
|
||||
System.err.println("new Socket((String)null, port)");
|
||||
final Socket s1 = new Socket((String) null, port);
|
||||
checkError("new Socket((String)null, port)");
|
||||
s1.close();
|
||||
System.err.println("new Socket((String)null, port): PASSED");
|
||||
try {
|
||||
t.start();
|
||||
|
||||
System.err.println("new Socket(InetAddress.getByName(null), port)");
|
||||
final Socket s2 = new Socket(InetAddress.getByName(null), port);
|
||||
checkError("new Socket(InetAddress.getByName(null), port)");
|
||||
s2.close();
|
||||
System.err.println("new Socket(InetAddress.getByName(null), port): PASSED");
|
||||
System.err.println("new Socket((String)null, port)");
|
||||
final Socket s1 = new Socket((String) null, port);
|
||||
checkError("new Socket((String)null, port)");
|
||||
s1.close();
|
||||
System.err.println("new Socket((String)null, port): PASSED");
|
||||
|
||||
System.err.println("new Socket(localhost, port)");
|
||||
final Socket s3 = new Socket("localhost", port);
|
||||
checkError("new Socket(localhost, port)");
|
||||
s3.close();
|
||||
System.err.println("new Socket(localhost, port): PASSED");
|
||||
System.err.println("new Socket(InetAddress.getByName(null), port)");
|
||||
final Socket s2 = new Socket(InetAddress.getByName(null), port);
|
||||
checkError("new Socket(InetAddress.getByName(null), port)");
|
||||
s2.close();
|
||||
System.err.println("new Socket(InetAddress.getByName(null), port): PASSED");
|
||||
|
||||
System.err.println("new Socket(127.0.0.1, port)");
|
||||
final Socket s4 = new Socket("127.0.0.1", port);
|
||||
checkError("new Socket(127.0.0.1, port)");
|
||||
s4.close();
|
||||
System.err.println("new Socket(127.0.0.1, port): PASSED");
|
||||
System.err.println("new Socket(localhost, port)");
|
||||
final Socket s3 = new Socket("localhost", port);
|
||||
checkError("new Socket(localhost, port)");
|
||||
s3.close();
|
||||
System.err.println("new Socket(localhost, port): PASSED");
|
||||
|
||||
System.err.println("new Socket(127.0.0.1, port)");
|
||||
final Socket s4 = new Socket("127.0.0.1", port);
|
||||
checkError("new Socket(127.0.0.1, port)");
|
||||
s4.close();
|
||||
System.err.println("new Socket(127.0.0.1, port): PASSED");
|
||||
}
|
||||
finally {
|
||||
isRunning = false;
|
||||
s.close();
|
||||
t.join();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user