# HG changeset patch # User sherman # Date 1214580750 25200 # Node ID 637b139ce684d696e6cc0b857b53e6110e03ad27 # Parent 36c29b2692f1e989bc8c64a95570efa911b0b60f 6645197: (so) Timed read with socket adaptor throws ClosedSelectorException if temporary selector GC'ed Summary: Temporary selector for timeout is not protected from possilbe GC when used first time Reviewed-by: alanb diff -r 36c29b2692f1 -r 637b139ce684 jdk/src/share/classes/sun/nio/ch/Util.java --- a/jdk/src/share/classes/sun/nio/ch/Util.java Wed Jun 25 13:58:22 2008 -0700 +++ b/jdk/src/share/classes/sun/nio/ch/Util.java Fri Jun 27 08:32:30 2008 -0700 @@ -142,11 +142,10 @@ || ((sel = selWrapper.get()) == null) || (sel.provider() != sc.provider())) { sel = sc.provider().openSelector(); - localSelector.set(new SoftReference( - new SelectorWrapper(sel))); - } else { - localSelectorWrapper.set(selWrapper); + selWrapper = new SelectorWrapper(sel); + localSelector.set(new SoftReference(selWrapper)); } + localSelectorWrapper.set(selWrapper); return sel; }