You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2016/09/22 21:29:16 UTC
svn commit: r1762000 -
/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java
Author: burn
Date: Thu Sep 22 21:29:16 2016
New Revision: 1762000
URL: http://svn.apache.org/viewvc?rev=1762000&view=rev
Log:
UIMA-5117 Log errors at SEVERE level; report when saxon calls exit; fix mis-matched class problem by not using a classloader if saxon is already in the classpath
Modified:
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java
Modified: uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java?rev=1762000&r1=1761999&r2=1762000&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java (original)
+++ uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java Thu Sep 22 21:29:16 2016
@@ -109,25 +109,29 @@ public class Dd2spring {
public void convertDd2Spring(File tempFile, String ddFilePath, String dd2SpringXsltFilePath,
URL saxonClasspathURL) throws Exception {
- if (null == saxonClassLoader) {
- URL[] classLoaderUrls = new URL[] { saxonClasspathURL };
-
- // ClassLoader cl = new URLClassLoader(classLoaderUrls);
- // use the bootstrap class loader as the parent
-
- saxonClassLoader = new URLClassLoader(classLoaderUrls, Object.class.getClassLoader());
- }
+ // UIMA-5117 - Add shutdown hook so can log when saxon gives up and calls exit :(
+ ShutdownHook shutdownHook = new ShutdownHook();
+ Runtime.getRuntime().addShutdownHook(shutdownHook);
+
+ // In case the saxon jar is in the classpath first try without the special classloader
Class<?> mainStartClass = null;
try {
- mainStartClass = Class.forName("net.sf.saxon.Transform", true, saxonClassLoader);
- } catch (ClassNotFoundException e) {
- System.err.println("Error - can't load Saxon jar from " + saxonClasspathURL
- + " for dd2spring transformation.");
- e.printStackTrace();
- UIMAFramework.getLogger(THIS_CLASS).logrb(Level.CONFIG, THIS_CLASS.getName(),
- "convertDD2Spring", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
- "UIMA_dd2spring_saxon_missing_SEVERE");
- throw e;
+ mainStartClass = Class.forName("net.sf.saxon.Transform");
+ } catch (ClassNotFoundException e1) {
+ // Use a classloader with the bootstrap class loader as the parent
+ if (null == saxonClassLoader) {
+ URL[] classLoaderUrls = new URL[] { saxonClasspathURL };
+ saxonClassLoader = new URLClassLoader(classLoaderUrls, Object.class.getClassLoader());
+ }
+ try {
+ mainStartClass = Class.forName("net.sf.saxon.Transform", true, saxonClassLoader);
+ } catch (ClassNotFoundException e) {
+ System.err.println("Error - can't load Saxon jar from " + saxonClasspathURL + " for dd2spring transformation.");
+ e.printStackTrace();
+ UIMAFramework.getLogger(THIS_CLASS).logrb(Level.SEVERE, THIS_CLASS.getName(), "convertDD2Spring", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+ "UIMA_dd2spring_saxon_missing_SEVERE");
+ throw e;
+ }
}
// args for saxon
@@ -156,47 +160,29 @@ public class Dd2spring {
UIMAFramework.getLogger(THIS_CLASS).log(Level.INFO, "Saxon args: " + argsForSaxon);
- Method mainMethod = null;
- try {
- mainMethod = mainStartClass.getMethod("main", String[].class);
- } catch (SecurityException e) {
- e.printStackTrace();
- UIMAFramework.getLogger(THIS_CLASS).logrb(Level.INFO, THIS_CLASS.getName(),
- "convertDD2Spring", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
- "UIMA_dd2spring_security_exception_calling_saxon");
- throw e;
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- throw e;
- }
-
try {
+ Method mainMethod = mainStartClass.getMethod("main", String[].class);
mainMethod.invoke(null,
new Object[] { argsForSaxon.toArray(new String[argsForSaxon.size()]) });
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- UIMAFramework.getLogger(THIS_CLASS).logrb(Level.INFO, THIS_CLASS.getName(),
- "convertDD2Spring", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
- "UIMA_dd2spring_internal_error_calling_saxon");
- throw e;
- } catch (IllegalAccessException e) {
+ } catch (Exception e) {
+ System.err.println("Error - dd2spring transformation failed:");
e.printStackTrace();
- UIMAFramework.getLogger(THIS_CLASS).logrb(Level.INFO, THIS_CLASS.getName(),
- "convertDD2Spring", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
- "UIMA_dd2spring_internal_error_calling_saxon");
- throw e;
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- UIMAFramework.getLogger(THIS_CLASS).logrb(Level.INFO, THIS_CLASS.getName(),
+ UIMAFramework.getLogger(THIS_CLASS).logrb(Level.SEVERE, THIS_CLASS.getName(),
"convertDD2Spring", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMA_dd2spring_internal_error_calling_saxon");
throw e;
- } catch( Exception e) {
- e.printStackTrace();
- throw e;
}
+ Runtime.getRuntime().removeShutdownHook(shutdownHook);
return;
}
+ // Shutdown hook that reports when Saxon calls exit!
+ private class ShutdownHook extends Thread {
+ public void run() {
+ System.err.println("ERROR in dd2spring Saxon transformation ... System.exit called");
+ System.err.flush();
+ }
+ }
+
}