On 21.05.16 0:42, Phil Race wrote:
That is too broad and I recall that Mark R. was pretty keen that SCE
should always be propagated.
So catching it only in the applet case was probably a compromise (I
don't remember exactly)

This code was added by the quite similar reason, the bug in one of the plugins. JDK-6342404: Misconfigured plugin could take down the whole Image I/O system.

https://bugs.openjdk.java.net/browse/JDK-6342404

Current fix looks fine, but probably we have some general rules in jdk to handle such issues?


-phil.

On 5/20/2016 2:09 PM, Sergey Bylokhov wrote:
Hi, Phil
Probably it will be simpler to change the code in
IIORegistry.registerApplicationClasspathSpis?

        } catch (ServiceConfigurationError err) {
            if (System.getSecurityManager() != null) {
                // In the applet case, we will catch the  error so
                // registration of other plugins can  proceed
                err.printStackTrace();
            } else {
                // In the application case, we will  throw the
                // error to indicate app/system  misconfiguration
                throw err;
            }
        }

We can change ServiceConfigurationError to Throwable + stacktrace.

On 20.05.16 23:07, Phil Race wrote:
Please review the following workaround for :-
https://bugs.openjdk.java.net/browse/JDK-8154860

-phil.

---
a/src/java.desktop/share/classes/javax/imageio/spi/ServiceRegistry.java
+++
b/src/java.desktop/share/classes/javax/imageio/spi/ServiceRegistry.java
@@ -770,7 +770,12 @@
         poset.add(provider);
         if (provider instanceof RegisterableService) {
             RegisterableService rs = (RegisterableService)provider;
+            try {
             rs.onRegistration(registry, category);
+            } catch (Throwable t) {
+                System.err.println("Caught and handled this
exception :");
+                t.printStackTrace();
+            }
         }

         return !present;






--
Best regards, Sergey.

Reply via email to