RFR 8129120 Terminal operation properties should not be back-propagated to upstream operations
Paul Sandoz
paul.sandoz at oracle.com
Fri Jun 19 16:07:25 UTC 2015
On Jun 19, 2015, at 2:04 PM, Paul Sandoz <Paul.Sandoz at oracle.com> wrote:
> There are two main aspects to the webrev:
>
> 1) remove the back propagation logic, which simplifies the preparation of the pipeline for parallel execution and also cleans up a certain aspect of toArray optimisation that i had been meaning get around to (regarding how the pipeline is sliced in this case).
>
> 2) adjust the tests in UnorderedTest.
> While i could of placed such tests in each corresponding op-specific test i thought it better to keep this focused, plus bulking out the op-specific tests in certain cases can increase the execution time (more specifically when certain HotSpot flags are used like -Xcomp).
>
I decided i am not happy with that testing approach. Sorry for the churn.
It's possible to do much better and broaden the scope for all existing and future tests with two stream test scenarios for each stream type:
1) parallel forEach with synchronization when reporting an element; and
2) same as 1 but clearing the SIZED flag (which means certain stateful ops will take different execution routes).
In such scenarios the expected result will be asserted against the actual result using an unordered contents assertion.
There is now no need for the UnorderedTest, so i have removed it.
I verified appropriate tests fail as expected without the fix applied.
Webrev is updated in place:
http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8129120-flag-back-propagation/webrev/
Paul.
More information about the core-libs-dev
mailing list