Author: dkulp Date: Thu Oct 27 20:38:40 2011 New Revision: 1190006 URL: http://svn.apache.org/viewvc?rev=1190006&view=rev Log: Merged revisions 1189993 via svnmerge from https://svn.us.apache.org/repos/asf/cxf/branches/2.4.x-fixes
................ r1189993 | dkulp | 2011-10-27 16:21:22 -0400 (Thu, 27 Oct 2011) | 9 lines 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.3.x-fixes/ (props changed) cxf/branches/2.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java cxf/branches/2.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.3.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.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java?rev=1190006&r1=1190005&r2=1190006&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java (original) +++ cxf/branches/2.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java Thu Oct 27 20:38:40 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.3.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.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?rev=1190006&r1=1190005&r2=1190006&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java (original) +++ cxf/branches/2.3.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Thu Oct 27 20:38:40 2011 @@ -249,6 +249,7 @@ public class JAXBDataBinding implements private ToolContext context; private DefaultValueProvider defaultValues; private boolean initialized; + private JAXBBindErrorListener listener; static { DEFAULT_TYPE_MAP.add("boolean"); @@ -294,7 +295,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(); @@ -409,6 +410,10 @@ public class JAXBDataBinding implements } } } + + if (listener.hasErrors()) { + listener.throwError(); + } initialized = true; } @@ -738,6 +743,7 @@ public class JAXBDataBinding implements for (String str : fileCodeWriter.getExcludeFileList()) { context.getExcludeFileList().add(str); } + } return; } catch (IOException e) {
