changeset 5890:dc8c914e7cac it2-bootstrap

Merge
author mduigou
date Sat, 01 Sep 2012 15:08:40 -0700
parents c9630c23e453 ba24de9416e3
children d4a6f7a6a8db
files src/share/classes/java/lang/invoke/SerializedLambda.java test-ng/tests/org/openjdk/tests/java/util/streams/ops/StreamOpTestCase.java
diffstat 5 files changed, 66 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/lang/invoke/SerializedLambda.java	Sat Sep 01 15:06:07 2012 -0700
+++ b/src/share/classes/java/lang/invoke/SerializedLambda.java	Sat Sep 01 15:08:40 2012 -0700
@@ -59,6 +59,46 @@
         this.capturedArgs = capturedArgs.clone();
     }
 
+    public String getCapturingClass() {
+        return capturingClass;
+    }
+
+    public String getFunctionalInterfaceClass() {
+        return functionalInterfaceClass;
+    }
+
+    public String getFunctionalInterfaceMethodName() {
+        return functionalInterfaceMethodName;
+    }
+
+    public String getFunctionalInterfaceMethodSignature() {
+        return functionalInterfaceMethodSignature;
+    }
+
+    public int getFunctionalInterfaceMethodKind() {
+        return functionalInterfaceMethodKind;
+    }
+
+    public String getImplClass() {
+        return implClass;
+    }
+
+    public String getImplMethodName() {
+        return implMethodName;
+    }
+
+    public String getImplMethodSignature() {
+        return implMethodSignature;
+    }
+
+    public int getImplMethodKind() {
+        return implMethodKind;
+    }
+
+    public Object[] getCapturedArgs() {
+        return capturedArgs;
+    }
+
     private Object readResolve() {
         // @@@
         //  - load the capturing class
--- a/test-ng/tests/org/openjdk/tests/java/util/streams/ops/FlatMapOpTest.java	Sat Sep 01 15:06:07 2012 -0700
+++ b/test-ng/tests/org/openjdk/tests/java/util/streams/ops/FlatMapOpTest.java	Sat Sep 01 15:08:40 2012 -0700
@@ -78,6 +78,9 @@
         result = exerciseOps(data, new FlatMapOp<>(mfNull));
         assertEquals(0, result.size());
 
+        result = exerciseOps(data, new FlatMapOp<>(mfId));
+        assertEquals(result.size(), data.size());
+
         exerciseOps(data, new FlatMapOp<>(mfLt));
         exerciseOps(data, new FlatMapOp<>(mfIntToBits));
     }
--- a/test-ng/tests/org/openjdk/tests/java/util/streams/ops/MapOpTest.java	Sat Sep 01 15:06:07 2012 -0700
+++ b/test-ng/tests/org/openjdk/tests/java/util/streams/ops/MapOpTest.java	Sat Sep 01 15:08:40 2012 -0700
@@ -36,6 +36,7 @@
  *
  * @author Brian Goetz
  */
+@Test
 public class MapOpTest extends StreamOpTestCase {
     public void testRawIterator() {
         assertCountSum(MapOp.iterator(countTo(0).iterator(), mId), 0, 0);
--- a/test-ng/tests/org/openjdk/tests/java/util/streams/ops/MatchOpTest.java	Sat Sep 01 15:06:07 2012 -0700
+++ b/test-ng/tests/org/openjdk/tests/java/util/streams/ops/MatchOpTest.java	Sat Sep 01 15:08:40 2012 -0700
@@ -44,10 +44,11 @@
  *
  * @author Brian Goetz
  */
+@Test
 public class MatchOpTest extends StreamOpTestCase {
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "raw" })
     private static final Predicate<Integer>[] INTEGER_PREDICATES
-            = (Predicate<Integer>[]) new Predicate[] { pTrue, pFalse, pEven, pOdd };
+            = (Predicate<Integer>[]) new Predicate<?>[] { pTrue, pFalse, pEven, pOdd };
 
     private enum MatchKind {
         ANY {
--- a/test-ng/tests/org/openjdk/tests/java/util/streams/ops/StreamOpTestCase.java	Sat Sep 01 15:06:07 2012 -0700
+++ b/test-ng/tests/org/openjdk/tests/java/util/streams/ops/StreamOpTestCase.java	Sat Sep 01 15:08:40 2012 -0700
@@ -55,6 +55,7 @@
         assertEquals(refResult, newResult);
     }
 
+    @SuppressWarnings({ "raw", "unchecked" })
     protected static <T, U> StreamResult<U> exerciseOps(TestData<T> data,
                                                         IntermediateOp<T, U> op) {
         StreamResult<U> refResult = exerciseOps(data, new IntermediateOp[] { op });
@@ -71,6 +72,7 @@
         return refResult;
     }
 
+    @SuppressWarnings({ "raw", "unchecked" })
     protected static <T, U> StreamResult<U> exerciseOps(TestData<T> data,
                                                         IntermediateOp... ops) {
         StreamResult<U> refResult = new StreamResult<>(data.size());
@@ -136,6 +138,7 @@
         return exerciseOps(data, (u, v) -> u.equals(v), terminal, ops);
     }
 
+    @SuppressWarnings({ "raw", "unchecked" })
     protected static <T, U> U exerciseOps(TestData<T> data,
                                           BiPredicate<U, U> equalator,
                                           TerminalOp<T, U> terminalOp,
@@ -148,27 +151,29 @@
         }
         else {
             // First pass -- create a sink and evaluate, with no size advice
-            StatefulSink<T, U> sink = terminalOp.sink();
+            StatefulSink<T, U> terminalSink = terminalOp.sink();
+            Sink<T, ?, ?> sink = sink(terminalSink, ops);
             sink.begin(-1);
             data.forEach(sink);
             sink.end();
-            answer = sink.getAndClearState();
+            answer = terminalSink.getAndClearState();
 
             // Create a sink and evaluate, with size advice
-            StatefulSink<T, U> sink2 = terminalOp.sink();
+            StatefulSink<T, U> terminalSink2 = terminalOp.sink();
+            Sink<T, ?, ?> sink2 = sink(terminalSink2, ops);
             sink2.begin(data.size());
             data.forEach(sink2);
             sink2.end();
-            U answer2 = sink2.getAndClearState();
+            U answer2 = terminalSink2.getAndClearState();
             assertTrue(equalator.test(answer, answer2));
         }
 
         // Third pass -- wrap with SequentialPipeline.op
-        U answer3 = data.seq(terminalOp);
+        U answer3 = data.seq(terminalOp, ops);
         assertTrue(equalator.test(answer, answer3));
 
         // Fourth pass -- wrap with ParallelPipeline.op
-        U answer4 = data.par(terminalOp);
+        U answer4 = data.par(terminalOp, ops);
         assertTrue(equalator.test(answer, answer4));
 
         return answer;
@@ -193,13 +198,13 @@
 
     static class StreamResult<T> implements Sink.OfLinear<T>, Traversable<T>, Sized {
 
-        private Object[] array;
+        private T[] array;
 
         private int offset;
 
         @SuppressWarnings("unchecked")
         public StreamResult(int initialSize) {
-            array = new Object[initialSize];
+            array = (T[]) new Object[initialSize];
         }
 
         public StreamResult() {
@@ -209,18 +214,16 @@
         @Override
         public void forEach(Block<? super T> block) {
             for (int i = 0; i < offset; i++) {
-                block.apply((T) array[i]);
+                block.apply(array[i]);
             }
         }
 
         @Override
-        @SuppressWarnings("unchecked")
         public Iterator<T> iterator() {
-            return (Iterator<T>) Arrays.iterator(array, 0, offset);
+            return Arrays.iterator(array, 0, offset);
         }
 
         @Override
-        @SuppressWarnings("unchecked")
         public void accept(T t) {
             if (offset == array.length) {
                 array = Arrays.copyOf(array, Math.max(array.length, 1) * 2);
@@ -243,7 +246,6 @@
         }
     }
 
-    @SuppressWarnings({ "raw", "unchecked" })
     private static class DummyParallelOpHelper<T> implements ParallelOp.ParallelOpHelper<T,T> {
         private final TestData<T> data;
 
@@ -257,22 +259,23 @@
         }
 
         @Override
-        public Spliterator spliterator() {
+        public Spliterator<T> spliterator() {
             return data.spliterator();
         }
 
         @Override
+        @SuppressWarnings({ "raw", "unchecked" })
         public Sink<T, ?, ?> sink(Sink sink) {
             return sink;
         }
 
         @Override
-        public Iterator iterator() {
+        public Iterator<T> iterator() {
             return data.iterator();
         }
 
         @Override
-        public Object invoke(ForkJoinTask task) {
+        public<Z> Z invoke(ForkJoinTask<Z> task) {
             return ForkJoinUtils.defaultFJPool().invoke(task);
         }
     }