Author: alessio.soldano(a)jboss.com
Date: 2009-07-16 08:46:37 -0400 (Thu, 16 Jul 2009)
New Revision: 10324
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/JAXBDeserializer.java
Log:
Workaround for JBWS-2686 (Parsing errors fail to terminate unmarshalling) while waiting
for Sun's bug to be fixed
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/JAXBDeserializer.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/JAXBDeserializer.java 2009-07-15
13:24:40 UTC (rev 10323)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/jaxws/JAXBDeserializer.java 2009-07-16
12:46:37 UTC (rev 10324)
@@ -24,6 +24,8 @@
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.ValidationEvent;
+import javax.xml.bind.ValidationEventHandler;
import javax.xml.namespace.QName;
import javax.xml.transform.Source;
import javax.xml.ws.WebServiceException;
@@ -67,7 +69,17 @@
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setAttachmentUnmarshaller( new AttachmentUnmarshallerImpl());
+
+ //workaround for
https://jira.jboss.org/jira/browse/JBWS-2686 while waiting for
Sun's bug to be fixed
+ unmarshaller.setEventHandler(new ValidationEventHandler() {
+ public boolean handleEvent(final ValidationEvent event)
+ {
+ int severity = event.getSeverity();
+ return (severity != ValidationEvent.FATAL_ERROR && severity !=
ValidationEvent.ERROR);
+ }
+ });
+
JAXBElement jbe = unmarshaller.unmarshal(xmlFragment, javaType);
value = jbe.getValue();