# HG changeset patch # User jwilhelm # Date 1488911001 -3600 # Node ID 9438f2fa5dd9dab645f294def5d1e98f192d9bd8 # Parent f6f0d2231cc64a26137afe885da0330e497afe02# Parent bc1a91ee90f02543f72eaba6d58e8fafa4da1e43 Merge diff -r f6f0d2231cc6 -r 9438f2fa5dd9 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 19:14:10 2017 +0100 +++ b/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java Tue Mar 07 19:23:21 2017 +0100 @@ -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;