8184330: Remove sun.nio.ch.Util.atBugLevel() either completely or at least get rid of volatile field bugLevel
Reviewed-by: alanb
--- 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<SelectionKey> keys() {
- if (!isOpen() && !Util.atBugLevel("1.4"))
+ if (!isOpen())
throw new ClosedSelectorException();
return publicKeys;
}
public Set<SelectionKey> selectedKeys() {
- if (!isOpen() && !Util.atBugLevel("1.4"))
+ if (!isOpen())
throw new ClosedSelectorException();
return publicSelectedKeys;
}
--- 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);
- }
-
}
--- 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();
}
-
}