You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2007/05/18 12:28:11 UTC

svn commit: r539369 - /geronimo/server/trunk/modules/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/XmlUtil.java

Author: dblevins
Date: Fri May 18 03:28:10 2007
New Revision: 539369

URL: http://svn.apache.org/viewvc?view=rev&rev=539369
Log:
In case a descriptor cannot be unmarshalled, write it to the temp directory for debugging purposes.

Modified:
    geronimo/server/trunk/modules/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/XmlUtil.java

Modified: geronimo/server/trunk/modules/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/XmlUtil.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/XmlUtil.java?view=diff&rev=539369&r1=539368&r2=539369
==============================================================================
--- geronimo/server/trunk/modules/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/XmlUtil.java (original)
+++ geronimo/server/trunk/modules/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/XmlUtil.java Fri May 18 03:28:10 2007
@@ -37,6 +37,7 @@
 import org.apache.openejb.jee.oejb2.EnvironmentType;
 import org.apache.openejb.jee.oejb2.GeronimoEjbJarType;
 import org.apache.openejb.jee.oejb2.ImportType;
+import org.apache.openejb.jee.oejb2.JaxbOpenejbJar2;
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlDocumentProperties;
 import org.apache.xmlbeans.XmlException;
@@ -49,6 +50,10 @@
 import javax.xml.bind.ValidationEvent;
 import javax.xml.namespace.QName;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
 
 public final class XmlUtil {
     public static final QName OPENEJBJAR_QNAME = OpenejbEjbJarDocument.type.getDocumentElementName();
@@ -123,8 +128,21 @@
 
             OpenejbGeronimoEjbJarType geronimoOpenejb = (OpenejbGeronimoEjbJarType) SchemaConversionUtils.fixGeronimoSchema(xmlObject, OPENEJBJAR_QNAME, OpenejbGeronimoEjbJarType.type);
             return geronimoOpenejb;
-        } catch (XmlException e) {
-            throw new DeploymentException("Error parsing geronimo-openejb.xml", e);
+        } catch (Throwable e) {
+            String filePath = "<error: could not be written>";
+            try {
+                File tempFile = File.createTempFile("openejb-jar-", ".xml");
+                try {
+                    FileOutputStream out = new FileOutputStream(tempFile);
+                    out.write(xml.getBytes());
+                    out.close();
+                } catch (Exception weTried) {
+                }
+                filePath = tempFile.getAbsolutePath();
+            } catch (IOException notImportant) {
+            }
+
+            throw new DeploymentException("Error parsing geronimo-openejb.xml with xmlbeans.  For debug purposes, XML content written to: "+filePath, e);
         }
     }