[jbossws-commits] JBossWS SVN: r11927 - stack/native/trunk/modules/core/src/main/java/org/jboss/wsf/stack/jbws.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Fri Apr 2 05:41:53 EDT 2010


Author: richard.opalka at jboss.com
Date: 2010-04-02 05:41:53 -0400 (Fri, 02 Apr 2010)
New Revision: 11927

Modified:
   stack/native/trunk/modules/core/src/main/java/org/jboss/wsf/stack/jbws/WSDLFilePublisher.java
Log:
[JBWS-2986] fixing NPE - there can be endpoints not providing wsdl publish location - e.g. WSProvider endpoints

Modified: stack/native/trunk/modules/core/src/main/java/org/jboss/wsf/stack/jbws/WSDLFilePublisher.java
===================================================================
--- stack/native/trunk/modules/core/src/main/java/org/jboss/wsf/stack/jbws/WSDLFilePublisher.java	2010-04-02 05:31:43 UTC (rev 11926)
+++ stack/native/trunk/modules/core/src/main/java/org/jboss/wsf/stack/jbws/WSDLFilePublisher.java	2010-04-02 09:41:53 UTC (rev 11927)
@@ -67,9 +67,11 @@
       String deploymentName = dep.getCanonicalName();
 
       // For each service
-      for (ServiceMetaData serviceMetaData : wsMetaData.getServices())
+      for (ServiceMetaData serviceMD : wsMetaData.getServices())
       {
-         File wsdlFile = getPublishLocation(deploymentName, serviceMetaData.getWsdlFileOrLocation().toExternalForm(), serviceMetaData.getWsdlPublishLocation());
+         final String wsdlLocation = this.getWSDLLocation(serviceMD);
+         final String publishLocation = serviceMD.getWsdlPublishLocation();
+         final File wsdlFile = getPublishLocation(deploymentName, wsdlLocation, publishLocation);
          if (wsdlFile == null)
             continue;
 
@@ -80,14 +82,14 @@
          try
          {
             fWriter = IOUtils.getCharsetFileWriter(wsdlFile, Constants.DEFAULT_XML_CHARSET);
-            WSDLDefinitions wsdlDefinitions = serviceMetaData.getWsdlDefinitions();
+            WSDLDefinitions wsdlDefinitions = serviceMD.getWsdlDefinitions();
             new WSDLWriter(wsdlDefinitions).write(fWriter, Constants.DEFAULT_XML_CHARSET);
 
             URL wsdlPublishURL = wsdlFile.toURI().toURL();
             log.info("WSDL published to: " + wsdlPublishURL);
 
             // udpate the wsdl file location 
-            serviceMetaData.setWsdlLocation(wsdlPublishURL);
+            serviceMD.setWsdlLocation(wsdlPublishURL);
 
             // Process the wsdl imports
             Definition wsdl11Definition = wsdlDefinitions.getWsdlOneOneDefinition();
@@ -123,6 +125,14 @@
       }
    }
    
+   private String getWSDLLocation(final ServiceMetaData serviceMD)
+   {
+      if (serviceMD.getWsdlFileOrLocation() == null)
+         return null;
+      
+      return serviceMD.getWsdlFileOrLocation().toExternalForm(); 
+   }
+
    /**
     * Get the file publish location
     */



More information about the jbossws-commits mailing list