summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/security/7195919.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/icedtea/security/7195919.patch')
-rw-r--r--java/openjdk6/files/icedtea/security/7195919.patch63
1 files changed, 0 insertions, 63 deletions
diff --git a/java/openjdk6/files/icedtea/security/7195919.patch b/java/openjdk6/files/icedtea/security/7195919.patch
deleted file mode 100644
index 2d14c00701b8..000000000000
--- a/java/openjdk6/files/icedtea/security/7195919.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-# HG changeset patch
-# User dmeetry
-# Date 1347313661 -14400
-# Node ID 5352a40bb0ff7e8a6e826478d7687fff695d9805
-# Parent 074f132d65c91231ca989e4c757207e1cf25a476
-7195919: (sl) ServiceLoader can throw CCE without needing to create instance
-Reviewed-by: smarks
-
-diff --git a/src/share/classes/java/util/ServiceLoader.java b/src/share/classes/java/util/ServiceLoader.java
---- jdk/src/share/classes/java/util/ServiceLoader.java
-+++ jdk/src/share/classes/java/util/ServiceLoader.java
-@@ -358,14 +358,21 @@
- }
- String cn = nextName;
- nextName = null;
-+ Class<?> c = null;
- try {
-- S p = service.cast(Class.forName(cn, true, loader)
-- .newInstance());
-- providers.put(cn, p);
-- return p;
-+ c = Class.forName(cn, false, loader);
- } catch (ClassNotFoundException x) {
- fail(service,
- "Provider " + cn + " not found");
-+ }
-+ if (!service.isAssignableFrom(c)) {
-+ fail(service,
-+ "Provider " + cn + " not a subtype");
-+ }
-+ try {
-+ S p = service.cast(c.newInstance());
-+ providers.put(cn, p);
-+ return p;
- } catch (Throwable x) {
- fail(service,
- "Provider " + cn + " could not be instantiated: " + x,
-diff --git a/src/share/classes/sun/misc/Service.java b/src/share/classes/sun/misc/Service.java
---- jdk/src/share/classes/sun/misc/Service.java
-+++ jdk/src/share/classes/sun/misc/Service.java
-@@ -284,12 +284,20 @@
- }
- String cn = nextName;
- nextName = null;
-+ Class<?> c = null;
- try {
-- return Class.forName(cn, true, loader).newInstance();
-+ c = Class.forName(cn, false, loader);
- } catch (ClassNotFoundException x) {
- fail(service,
- "Provider " + cn + " not found");
-- } catch (Exception x) {
-+ }
-+ if (!service.isAssignableFrom(c)) {
-+ fail(service,
-+ "Provider " + cn + " not a subtype");
-+ }
-+ try {
-+ return service.cast(c.newInstance());
-+ } catch (Throwable x) {
- fail(service,
- "Provider " + cn + " could not be instantiated: " + x,
- x);