# HG changeset patch # User clanger # Date 1501853312 -7200 # Node ID 0c23b05caf7d82506d08a4dfc463748607bd2fd2 # Parent 5d86e010d558c48e5c1407f4dfbf2928d9418ea1 8184330: Remove sun.nio.ch.Util.atBugLevel() either completely or at least get rid of volatile field bugLevel Reviewed-by: alanb diff -r 5d86e010d558 -r 0c23b05caf7d jdk/src/java.base/share/classes/sun/nio/ch/SelectorImpl.java --- a/jdk/src/java.base/share/classes/sun/nio/ch/SelectorImpl.java Fri Aug 04 10:54:48 2017 +0100 +++ b/jdk/src/java.base/share/classes/sun/nio/ch/SelectorImpl.java Fri Aug 04 15:28:32 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,10 +26,18 @@ package sun.nio.ch; import java.io.IOException; -import java.nio.channels.*; -import java.nio.channels.spi.*; import java.net.SocketException; -import java.util.*; +import java.nio.channels.ClosedSelectorException; +import java.nio.channels.IllegalSelectorException; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.spi.AbstractSelectableChannel; +import java.nio.channels.spi.AbstractSelector; +import java.nio.channels.spi.SelectorProvider; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; /** @@ -54,23 +62,18 @@ super(sp); keys = new HashSet<>(); selectedKeys = new HashSet<>(); - if (Util.atBugLevel("1.4")) { - publicKeys = keys; - publicSelectedKeys = selectedKeys; - } else { - publicKeys = Collections.unmodifiableSet(keys); - publicSelectedKeys = Util.ungrowableSet(selectedKeys); - } + publicKeys = Collections.unmodifiableSet(keys); + publicSelectedKeys = Util.ungrowableSet(selectedKeys); } public Set keys() { - if (!isOpen() && !Util.atBugLevel("1.4")) + if (!isOpen()) throw new ClosedSelectorException(); return publicKeys; } public Set selectedKeys() { - if (!isOpen() && !Util.atBugLevel("1.4")) + if (!isOpen()) throw new ClosedSelectorException(); return publicSelectedKeys; } diff -r 5d86e010d558 -r 0c23b05caf7d jdk/src/java.base/share/classes/sun/nio/ch/Util.java --- a/jdk/src/java.base/share/classes/sun/nio/ch/Util.java Fri Aug 04 10:54:48 2017 +0100 +++ b/jdk/src/java.base/share/classes/sun/nio/ch/Util.java Fri Aug 04 15:28:32 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,13 +25,16 @@ package sun.nio.ch; -import java.lang.reflect.*; import java.io.FileDescriptor; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.security.AccessController; import java.security.PrivilegedAction; -import java.util.*; +import java.util.Collection; +import java.util.Iterator; +import java.util.Set; import jdk.internal.misc.Unsafe; import sun.security.action.GetPropertyAction; @@ -456,21 +459,4 @@ } return dbb; } - - - // -- Bug compatibility -- - - private static volatile String bugLevel; - - static boolean atBugLevel(String bl) { // package-private - if (bugLevel == null) { - if (!jdk.internal.misc.VM.isBooted()) - return false; - String value = GetPropertyAction - .privilegedGetProperty("sun.nio.ch.bugLevel"); - bugLevel = (value != null) ? value : ""; - } - return bugLevel.equals(bl); - } - } diff -r 5d86e010d558 -r 0c23b05caf7d jdk/test/java/nio/channels/Selector/KeySets.java --- a/jdk/test/java/nio/channels/Selector/KeySets.java Fri Aug 04 10:54:48 2017 +0100 +++ b/jdk/test/java/nio/channels/Selector/KeySets.java Fri Aug 04 15:28:32 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,34 +26,25 @@ * @summary Check various properties of key and selected-key sets * * @run main KeySets - * @run main/othervm -Dsun.nio.ch.bugLevel=1.4 KeySets */ import java.io.*; import java.nio.channels.*; import java.util.*; - public class KeySets { - static boolean compat; - static abstract class Catch { abstract void go() throws Exception; Catch(Class xc) throws Exception { try { go(); } catch (Exception x) { - if (compat) - throw new Exception("Exception thrown", x); if (xc.isInstance(x)) return; throw new Exception("Wrong exception", x); } - if (compat) - return; - throw new Exception("Not thrown as expected: " - + xc.getName()); + throw new Exception("Not thrown as expected: " + xc.getName()); } } @@ -74,7 +65,6 @@ void go() throws Exception { sel.selectedKeys(); }}; - } static void testNoAddition(final Set s) throws Exception { @@ -174,14 +164,10 @@ sel.selectedKeys().clear(); if (!sel.selectedKeys().isEmpty()) throw new Exception("clear failed"); - } public static void main(String[] args) throws Exception { - String bl = System.getProperty("sun.nio.ch.bugLevel"); - compat = (bl != null) && bl.equals("1.4"); testClose(); testMutability(); } - }