Revision: 5063
          http://sourceforge.net/p/jump-pilot/code/5063
Author:   edso
Date:     2016-10-09 16:20:42 +0000 (Sun, 09 Oct 2016)
Log Message:
-----------
make sure ClassVersionErrors in extension jars or such do not break OJ startup
expose ErrorHandlerV2

Modified Paths:
--------------
    core/trunk/src/com/vividsolutions/jump/workbench/JUMPWorkbenchContext.java
    core/trunk/src/com/vividsolutions/jump/workbench/WorkbenchContext.java
    core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/JUMPWorkbenchContext.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/workbench/JUMPWorkbenchContext.java  
2016-10-09 14:46:28 UTC (rev 5062)
+++ core/trunk/src/com/vividsolutions/jump/workbench/JUMPWorkbenchContext.java  
2016-10-09 16:20:42 UTC (rev 5063)
@@ -61,7 +61,7 @@
     return workbench.getDriverManager();
   }
 
-  public ErrorHandler getErrorHandler() {
+  public ErrorHandlerV2 getErrorHandler() {
     return workbench.getFrame();
   }
 

Modified: core/trunk/src/com/vividsolutions/jump/workbench/WorkbenchContext.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/workbench/WorkbenchContext.java      
2016-10-09 14:46:28 UTC (rev 5062)
+++ core/trunk/src/com/vividsolutions/jump/workbench/WorkbenchContext.java      
2016-10-09 16:20:42 UTC (rev 5063)
@@ -59,7 +59,7 @@
 
     abstract public JUMPWorkbench getWorkbench();
 
-    abstract public ErrorHandler getErrorHandler();
+    abstract public ErrorHandlerV2 getErrorHandler();
 
     abstract public Blackboard getBlackboard();
 

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java  
2016-10-09 14:46:28 UTC (rev 5062)
+++ core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java  
2016-10-09 16:20:42 UTC (rev 5063)
@@ -346,11 +346,19 @@
       ArrayList configurations = new ArrayList();
       for (Iterator i = classNames.iterator(); i.hasNext();) {
         String name = (String) i.next();
-        // find class using the plugin classloader
-        Class clazz = Class.forName(name, false, classLoader);
-        if ( Configuration.class.isAssignableFrom(clazz) ) {
-          Configuration configuration = (Configuration) clazz.newInstance();
-          configurations.add(configuration);
+        
+        try {
+          // find class using the plugin classloader
+          Class clazz = Class.forName(name, false, classLoader);
+          if ( Configuration.class.isAssignableFrom(clazz) ) {
+            Configuration configuration = (Configuration) clazz.newInstance();
+            configurations.add(configuration);
+          }
+        } 
+        // make sure ClassVersionErrors or such do not break OJ startup
+        catch (Throwable t) {
+          
context.getErrorHandler().handleThrowable(t,context.getWorkbench().getFrame());
+          continue;
         }
       }
       return configurations;


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to