# HG changeset patch # User dl # Date 1488909999 28800 # Node ID bc1a91ee90f02543f72eaba6d58e8fafa4da1e43 # Parent 4d25a0bb7426a16b3b36129a257a8c67fa0ed7e9 8176155: SubmissionPublisher closeExceptionally() may override close() Reviewed-by: martin, psandoz diff -r 4d25a0bb7426 -r bc1a91ee90f0 jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java --- a/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java Tue Mar 07 22:55:36 2017 +0800 +++ b/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java Tue Mar 07 10:06:39 2017 -0800 @@ -588,6 +588,7 @@ if (!closed) { BufferedSubscription b; synchronized (this) { + // no need to re-check closed here b = clients; clients = null; closed = true; @@ -619,9 +620,11 @@ BufferedSubscription b; synchronized (this) { b = clients; - clients = null; - closed = true; - closedException = error; + if (!closed) { // don't clobber racing close + clients = null; + closedException = error; + closed = true; + } } while (b != null) { BufferedSubscription next = b.next;