Skip to content

Commit 9907065

Browse files
committed
8344065: Remove SecurityManager uses from the java.datatransfer module
Reviewed-by: serb
1 parent db56266 commit 9907065

File tree

3 files changed

+14
-32
lines changed

3 files changed

+14
-32
lines changed

src/java.base/share/classes/module-info.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@
313313
java.desktop;
314314
exports sun.reflect.misc to
315315
java.desktop,
316-
java.datatransfer,
317316
java.management,
318317
java.management.rmi,
319318
java.rmi,

src/java.datatransfer/share/classes/java/awt/datatransfer/DataFlavor.java

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import java.util.Objects;
4646

4747
import sun.datatransfer.DataFlavorUtil;
48-
import sun.reflect.misc.ReflectUtil;
4948

5049
/**
5150
* A {@code DataFlavor} provides meta information about data. {@code DataFlavor}
@@ -131,32 +130,22 @@ protected static final Class<?> tryToLoadClass(String className,
131130
ClassLoader fallback)
132131
throws ClassNotFoundException
133132
{
134-
ReflectUtil.checkPackageAccess(className);
133+
ClassLoader loader = ClassLoader.getSystemClassLoader();
135134
try {
136-
@SuppressWarnings("removal")
137-
SecurityManager sm = System.getSecurityManager();
138-
if (sm != null) {
139-
sm.checkPermission(new RuntimePermission("getClassLoader"));
140-
}
141-
ClassLoader loader = ClassLoader.getSystemClassLoader();
142-
try {
143-
// bootstrap class loader and system class loader if present
144-
return Class.forName(className, true, loader);
145-
}
146-
catch (ClassNotFoundException exception) {
147-
// thread context class loader if and only if present
148-
loader = Thread.currentThread().getContextClassLoader();
149-
if (loader != null) {
150-
try {
151-
return Class.forName(className, true, loader);
152-
}
153-
catch (ClassNotFoundException e) {
154-
// fallback to user's class loader
155-
}
135+
// bootstrap class loader and system class loader if present
136+
return Class.forName(className, true, loader);
137+
}
138+
catch (ClassNotFoundException exception) {
139+
// thread context class loader if and only if present
140+
loader = Thread.currentThread().getContextClassLoader();
141+
if (loader != null) {
142+
try {
143+
return Class.forName(className, true, loader);
144+
}
145+
catch (ClassNotFoundException e) {
146+
// fallback to user's class loader
156147
}
157148
}
158-
} catch (SecurityException exception) {
159-
// ignore secured class loaders
160149
}
161150
return Class.forName(className, true, fallback);
162151
}

src/java.datatransfer/share/classes/java/awt/datatransfer/SystemFlavorMap.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import java.io.InputStream;
3131
import java.io.InputStreamReader;
3232
import java.lang.ref.SoftReference;
33-
import java.security.AccessController;
34-
import java.security.PrivilegedAction;
3533
import java.util.ArrayList;
3634
import java.util.Collections;
3735
import java.util.HashMap;
@@ -202,12 +200,8 @@ private void initSystemFlavorMap() {
202200
}
203201
isMapInitialized = true;
204202

205-
@SuppressWarnings("removal")
206-
InputStream is = AccessController.doPrivileged(
207-
(PrivilegedAction<InputStream>) () -> {
208-
return SystemFlavorMap.class.getResourceAsStream(
203+
InputStream is = SystemFlavorMap.class.getResourceAsStream(
209204
"/sun/datatransfer/resources/flavormap.properties");
210-
});
211205
if (is == null) {
212206
throw new InternalError("Default flavor mapping not found");
213207
}

0 commit comments

Comments
 (0)