--- old/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java 2015-10-26 13:45:53.000000000 +0100 +++ new/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java 2015-10-26 13:45:53.000000000 +0100 @@ -48,17 +48,10 @@ public abstract class SOAPFactory { /** - * A constant representing the property used to lookup the name of - * a {@code SOAPFactory} implementation class. - */ - static private final String SOAP_FACTORY_PROPERTY = - "javax.xml.soap.SOAPFactory"; - - /** * Class name of default {@code SOAPFactory} implementation. */ - static final String DEFAULT_SOAP_FACTORY - = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl"; + private static final String DEFAULT_SOAP_FACTORY + = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl"; /** * Creates a {@code SOAPElement} object from an existing DOM @@ -239,18 +232,10 @@ /** * Creates a new {@code SOAPFactory} object that is an instance of - * the default implementation (SOAP 1.1), + * the default implementation (SOAP 1.1). * - * This method uses the following ordered lookup procedure to determine the SOAPFactory implementation class to load: - * + * This method uses the lookup procedure specified in {@link javax.xml.soap} to locate and load the + * {@link javax.xml.soap.SOAPFactory} class. * * @return a new instance of a {@code SOAPFactory} * @@ -262,10 +247,13 @@ throws SOAPException { try { - SOAPFactory factory = (SOAPFactory) FactoryFinder.find( - SOAP_FACTORY_PROPERTY, DEFAULT_SOAP_FACTORY, false); - if (factory != null) - return factory; + SOAPFactory factory = FactoryFinder.find( + SOAPFactory.class, + DEFAULT_SOAP_FACTORY, + false); + if (factory != null) return factory; + + // leave it on SAAJMetaFactory return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); } catch (Exception ex) { throw new SOAPException(