You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/10/27 22:21:23 UTC

svn commit: r1189993 - in /cxf/branches/2.4.x-fixes: ./ tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/

Author: dkulp
Date: Thu Oct 27 20:21:22 2011
New Revision: 1189993

URL: http://svn.apache.org/viewvc?rev=1189993&view=rev
Log:
Merged revisions 1189938 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1189938 | dkulp | 2011-10-27 15:04:11 -0400 (Thu, 27 Oct 2011) | 1 line
  
  [CXF-3887] Allow xjc to display multiple error messages
........

Modified:
    cxf/branches/2.4.x-fixes/   (props changed)
    cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java
    cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java

Propchange: cxf/branches/2.4.x-fixes/
            ('svn:mergeinfo' removed)

Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java?rev=1189993&r1=1189992&r2=1189993&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java Thu Oct 27 20:21:22 2011
@@ -18,6 +18,7 @@
  */
 
 package org.apache.cxf.tools.wsdlto.databinding.jaxb;
+
 import com.sun.tools.xjc.api.ErrorListener;
 
 import org.apache.cxf.tools.common.ToolException;
@@ -25,21 +26,40 @@ import org.apache.cxf.tools.common.ToolE
 public class JAXBBindErrorListener implements ErrorListener {
     private boolean isVerbose;
     private String prefix = "Thrown by JAXB: ";
-
+    private StringBuilder errors = new StringBuilder();
+    private Exception firstException;
+    
     public JAXBBindErrorListener(boolean verbose) {
         isVerbose = verbose;
     }
 
+    public boolean hasErrors() {
+        return errors.length() != 0;
+    }
+    public void throwError() {
+        throw new ToolException(prefix + "\n" + errors.toString(), firstException);
+    }
+    
     public void error(org.xml.sax.SAXParseException exception) {
+        if (errors.length() == 0) {
+            errors.append(prefix);
+        }
+        errors.append("\n");
         if (exception.getLineNumber() > 0) {
-            throw new ToolException(prefix + exception.getLocalizedMessage() 
-                                    + " at line " + exception.getLineNumber()
-                                    + " column " + exception.getColumnNumber()
-                                    + " of schema " + exception.getSystemId(), exception);
+            errors.append(exception.getLocalizedMessage() + "\n"
+                       + " at line " + exception.getLineNumber()
+                       + " column " + exception.getColumnNumber()
+                       + " of schema " + exception.getSystemId()
+                       + "\n");
            
+        } else {
+            errors.append(prefix + mapMessage(exception.getLocalizedMessage())
+                          + "\n");
+        }
+        if (firstException == null) {
+            firstException = exception;
+            firstException.fillInStackTrace();
         }
-        throw new ToolException(prefix + mapMessage(exception.getLocalizedMessage()), exception);
-
     }
 
     public void fatalError(org.xml.sax.SAXParseException exception) {
@@ -56,7 +76,7 @@ public class JAXBBindErrorListener imple
 
     public void warning(org.xml.sax.SAXParseException exception) {
         if (this.isVerbose) {
-            System.err.println("JAXB parsing schema warning " + exception.toString()
+            System.out.println("JAXB parsing schema warning " + exception.toString()
                                + " in schema " + exception.getSystemId());
         }
     }

Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?rev=1189993&r1=1189992&r2=1189993&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Thu Oct 27 20:21:22 2011
@@ -247,7 +247,8 @@ public class JAXBDataBinding implements 
     private ToolContext context;
     private DefaultValueProvider defaultValues;
     private boolean initialized;
-
+    private JAXBBindErrorListener listener;
+    
     static {
         DEFAULT_TYPE_MAP.add("boolean");
         DEFAULT_TYPE_MAP.add("int");
@@ -292,7 +293,7 @@ public class JAXBDataBinding implements 
 
         schemaCompiler.setClassNameAllocator(allocator);
 
-        JAXBBindErrorListener listener = new JAXBBindErrorListener(context.isVerbose());
+        listener = new JAXBBindErrorListener(context.isVerbose());
         schemaCompiler.setErrorListener(listener);
         // Collection<SchemaInfo> schemas = serviceInfo.getSchemas();
         List<InputSource> jaxbBindings = context.getJaxbBindingFile();
@@ -407,6 +408,10 @@ public class JAXBDataBinding implements 
                 }
             }
         }
+        
+        if (listener.hasErrors()) {
+            listener.throwError();
+        }
         initialized = true;
     }
 
@@ -728,6 +733,7 @@ public class JAXBDataBinding implements 
                 for (String str : fileCodeWriter.getExcludeFileList()) {
                     context.getExcludeFileList().add(str);
                 }
+                
             }
             return;
         } catch (IOException e) {