/* 85 */ DetailEntry deElement = (DetailEntry)it.next();
/* 86 */ QName xmlName = deElement.getElementQName();
/* 87 */ log.debug("Processing detail entry: " + xmlName);
/* */
/* 89 */ OperationMetaData opMetaData = msgContext.getOperationMetaData();
/* 90 */ FaultMetaData faultMetaData = opMetaData.getFault(xmlName);
/* 91 */ if (faultMetaData != null)
/* */ {
/* 93 */ log.debug("Deserialize fault: " + faultMetaData);
/* 94 */ QName xmlType = faultMetaData.getXmlType();
/* 95 */ Class faultBeanClass = faultMetaData.getFaultBean();
/* */
/* 98 */ AbstractDeserializerFactory desFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(faultBeanClass, xmlType);
/* 99 */ if (desFactory == null) {
/* 100 */ throw new WebServiceException("Cannot obtain deserializer factory: xmlType=" + xmlType + ", javaType=" + faultBeanClass);
/* */ }
/* */
/* 104 */ String prefix = deElement.getPrefix();
/* 105 */ if ((prefix != null) && (prefix.length() > 0))
/* */ {
/* 107 */ String nsURI = deElement.getNamespaceURI();
/* 108 */ if ((nsURI.length() > 0) && (deElement.getAttributeNS("http://www.w3.org/2000/xmlns/", prefix).length() == 0))
/* */ {
/* */ try
/* */ {
/* 112 */ deElement.addNamespaceDeclaration(prefix, nsURI);
/* */ }
/* */ catch (SOAPException e)
/* */ {
/* 116 */ log.warn("Declaration of detail entry namespace failed", e);
/* */ }
/* */ }
/* */
/* */ }
/* */
/* */ try
/* */ {
/* 124 */ Class[] types = (Class[])opMetaData.getEndpointMetaData().getRegisteredTypes().toArray(new Class[0]);
/* 125 */ serContext.setProperty("org.jboss.ws.jaxb.context.types", types);
/* */
/* 127 */ Source source = new DOMSource(deElement);
/* 128 */ DeserializerSupport des = desFactory.getDeserializer();
/* 129 */ Object faultBean = des.deserialize(xmlName, xmlType, source, serContext);
/* */
/* 131 */ Exception serviceEx = faultMetaData.toServiceException(faultBean, soapFault.getFaultString());
/* 132 */ faultEx.initCause(serviceEx);
/* */ }
/* */ catch (BindingException e)
/* */ {
/* 136 */ throw new WebServiceException(e);