Author: kstam
Date: Tue Jun 28 18:14:30 2011
New Revision: 1140769

URL: http://svn.apache.org/viewvc?rev=1140769&view=rev
Log:
SCOUT-116 in UDDI v3 deleting an entity returns an empty response. Scout should 
be able to handle that.

Modified:
    
juddi/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java
    
juddi/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java
    
juddi/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiV3Helper.java

Modified: 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java
URL: 
http://svn.apache.org/viewvc/juddi/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java?rev=1140769&r1=1140768&r2=1140769&view=diff
==============================================================================
--- 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java
 (original)
+++ 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java
 Tue Jun 28 18:14:30 2011
@@ -311,88 +311,90 @@ public class RegistryV3Impl implements I
                        response.removeAttribute(attr);
                    }
            }*/
-
-           if (response.getNamespaceURI()==null) {
-            response.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns";, 
this.getUddiNamespace());
-        }
-           
-           // If we are getting responses from a UDDI v3, remove the xmlns
-           
-           // First, let's make sure that a response
-           // (any response) is found in the SOAP Body.
-
-           String responseName = response.getLocalName();
-           if (responseName == null) {
-               throw new RegistryV3Exception("Unsupported response "
-                       + "from registry. A value was not present.");
-               } 
-           
-        // Let's now try to determine which UDDI response
-        // we received and unmarshal it appropriately or
-        // throw a RegistryV3Exception if it's unknown.
-        // Well, we have now determined that something was
-        // returned and it is "a something" that we know
-        // about so let's unmarshal it into a RegistryObject
-        // Next, let's make sure we didn't recieve a SOAP
-        // Fault. If it is a SOAP Fault then throw it
-        // immediately.
-
-        JAXBElement<?> uddiResponse = null;
-           try {
-               String xml = XMLUtils.convertNodeToXMLString(response);
-               log.debug("Response is: " + xml);
-               
-               StringReader reader = new StringReader(xml);
-               uddiResponse = (JAXBElement<?>) unmarshaller.unmarshal(new 
StreamSource(reader));
-               //It is probably faster not to go to a String, but JAXB has 
issues with this
-               //uddiResponse = (JAXBElement<?>) 
unmarshaller.unmarshal(response);
-
-           } catch (JAXBException xmle) {
-               throw (new RegistryV3Exception(xmle));
-           }
-
-               if (responseName.toLowerCase().equals("fault")) {
-                       NodeList nodeList = null;
-                       
-                       // Child Elements
-                       String fCode = null;
-                       nodeList = response.getElementsByTagName("faultcode");
-                       if (nodeList.getLength() > 0)
-                               fCode = nodeList.item(0).getNodeValue();
-
-                       String fString = null;
-                       nodeList = response.getElementsByTagName("faultstring");
-                       if (nodeList.getLength() > 0)
-                               fString = nodeList.item(0).getNodeValue();
-
-                       String fActor = null;
-                       nodeList = response.getElementsByTagName("faultactor");
-                       if (nodeList.getLength() > 0)
-                               fActor = nodeList.item(0).getNodeValue();
-
-                       DispositionReport dispRpt = null;
-
-                       nodeList = response.getElementsByTagName("detail");
-                       if (nodeList.getLength() > 0) {
-                               nodeList = ((Element) nodeList.item(0))
-                                               
.getElementsByTagName("dispositionReport");
+           JAXBElement<?> uddiResponse = null;
+           if (response!=null) {
+                   if (response.getNamespaceURI()==null) {
+                   
response.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns";, 
this.getUddiNamespace());
+               }
+                   
+                   // If we are getting responses from a UDDI v3, remove the 
xmlns
+                   
+                   // First, let's make sure that a response
+                   // (any response) is found in the SOAP Body.
+       
+                   String responseName = response.getLocalName();
+                   if (responseName == null) {
+                       throw new RegistryV3Exception("Unsupported response "
+                               + "from registry. A value was not present.");
+                       } 
+                   
+               // Let's now try to determine which UDDI response
+               // we received and unmarshal it appropriately or
+               // throw a RegistryV3Exception if it's unknown.
+               // Well, we have now determined that something was
+               // returned and it is "a something" that we know
+               // about so let's unmarshal it into a RegistryObject
+               // Next, let's make sure we didn't recieve a SOAP
+               // Fault. If it is a SOAP Fault then throw it
+               // immediately.
+       
+               
+                   try {
+                       String xml = XMLUtils.convertNodeToXMLString(response);
+                       log.debug("Response is: " + xml);
+                       
+                       StringReader reader = new StringReader(xml);
+                       uddiResponse = (JAXBElement<?>) 
unmarshaller.unmarshal(new StreamSource(reader));
+                       //It is probably faster not to go to a String, but JAXB 
has issues with this
+                       //uddiResponse = (JAXBElement<?>) 
unmarshaller.unmarshal(response);
+       
+                   } catch (JAXBException xmle) {
+                       throw (new RegistryV3Exception(xmle));
+                   }
+       
+                       if (responseName.toLowerCase().equals("fault")) {
+                               NodeList nodeList = null;
+                               
+                               // Child Elements
+                               String fCode = null;
+                               nodeList = 
response.getElementsByTagName("faultcode");
+                               if (nodeList.getLength() > 0)
+                                       fCode = nodeList.item(0).getNodeValue();
+       
+                               String fString = null;
+                               nodeList = 
response.getElementsByTagName("faultstring");
+                               if (nodeList.getLength() > 0)
+                                       fString = 
nodeList.item(0).getNodeValue();
+       
+                               String fActor = null;
+                               nodeList = 
response.getElementsByTagName("faultactor");
+                               if (nodeList.getLength() > 0)
+                                       fActor = 
nodeList.item(0).getNodeValue();
+       
+                               DispositionReport dispRpt = null;
+       
+                               nodeList = 
response.getElementsByTagName("detail");
                                if (nodeList.getLength() > 0) {
-                                       JAXBElement<DispositionReport> 
dispRptObj = null;
-                                       try {
-                                               dispRptObj = 
(JAXBElement<DispositionReport>) unmarshaller.unmarshal((Element) nodeList
-                                                               .item(0));
-                                       } catch (JAXBException xmle) {
-                                               throw (new 
RegistryV3Exception(xmle));
-                                       }
-                    dispRpt = dispRptObj.getValue();
-                }
+                                       nodeList = ((Element) nodeList.item(0))
+                                                       
.getElementsByTagName("dispositionReport");
+                                       if (nodeList.getLength() > 0) {
+                                               JAXBElement<DispositionReport> 
dispRptObj = null;
+                                               try {
+                                                       dispRptObj = 
(JAXBElement<DispositionReport>) unmarshaller.unmarshal((Element) nodeList
+                                                                       
.item(0));
+                                               } catch (JAXBException xmle) {
+                                                       throw (new 
RegistryV3Exception(xmle));
+                                               }
+                           dispRpt = dispRptObj.getValue();
+                       }
+                               }
+       
+                               RegistryV3Exception e = new 
RegistryV3Exception(fCode, fString, fActor, dispRpt);
+                       
+                               // Create RegistryV3Exception instance and 
return
+                               throw e;
                        }
-
-                       RegistryV3Exception e = new RegistryV3Exception(fCode, 
fString, fActor, dispRpt);
-               
-                       // Create RegistryV3Exception instance and return
-                       throw e;
-               }
+           }
 
                return uddiResponse;
        }
@@ -550,9 +552,11 @@ public class RegistryV3Impl implements I
                        
request.getBindingKey().addAll(Arrays.asList(bindingKeyArray));
                }
 
-        DispositionReport dr;
+        DispositionReport dr = new DispositionReport();
         JAXBElement<?> o = 
execute(this.objectFactory.createDeleteBinding(request), this.getPublishURI());
-        dr = (DispositionReport) o.getValue();
+        if (o!=null) {
+               dr = (DispositionReport) o.getValue();
+        }
 
         return dr;
        }
@@ -574,9 +578,11 @@ public class RegistryV3Impl implements I
                        
request.getBusinessKey().addAll(Arrays.asList(businessKeyArray));
                }
 
-        DispositionReport dr;
+        DispositionReport dr = new DispositionReport();
         JAXBElement<?> o = 
execute(this.objectFactory.createDeleteBusiness(request), this.getPublishURI());
-        dr = (DispositionReport) o.getValue();
+        if (o!=null){
+               dr = (DispositionReport) o.getValue();
+        }
 
         return dr;
        }
@@ -596,10 +602,12 @@ public class RegistryV3Impl implements I
                        
request.getPublisherAssertion().addAll(Arrays.asList(assertionArray));
                }
 
-        DispositionReport dr;
+        DispositionReport dr = new DispositionReport();
         JAXBElement<?> o = 
execute(this.objectFactory.createDeletePublisherAssertions(request), 
                        this.getPublishURI());
-        dr = (DispositionReport) o.getValue();
+        if (o!=null) {
+               dr = (DispositionReport) o.getValue();
+        }
 
         return dr;
        }
@@ -622,10 +630,12 @@ public class RegistryV3Impl implements I
                        
request.getServiceKey().addAll(Arrays.asList(serviceKeyArray));
                }
 
-        DispositionReport dr;
+        DispositionReport dr = new DispositionReport();
         JAXBElement<?> o = 
execute(this.objectFactory.createDeleteService(request), 
                        this.getPublishURI());
-        dr = (DispositionReport) o.getValue();
+        if (o!=null) {
+               dr = (DispositionReport) o.getValue();
+        }
 
         return dr;
        }
@@ -649,10 +659,12 @@ public class RegistryV3Impl implements I
                        
request.getTModelKey().addAll(Arrays.asList(tModelKeyArray));
                }
 
-        DispositionReport dr;
+        DispositionReport dr = new DispositionReport();
         JAXBElement<?> o = 
execute(this.objectFactory.createDeleteTModel(request), 
                        this.getPublishURI());
-        dr = (DispositionReport) o.getValue();
+        if (o!=null) {
+               dr = (DispositionReport) o.getValue();
+        }
 
         return dr;
        }

Modified: 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java
URL: 
http://svn.apache.org/viewvc/juddi/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java?rev=1140769&r1=1140768&r2=1140769&view=diff
==============================================================================
--- 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java
 (original)
+++ 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java
 Tue Jun 28 18:14:30 2011
@@ -63,7 +63,9 @@ public class AxisTransport implements Tr
       Object[] soapBodies = new Object[] { body };
 
       Vector result = (Vector)call.invoke(soapBodies);
-      response = ((SOAPBodyElement)result.elementAt(0)).getAsDOM();
+      if (result.size() > 0) {
+         response = ((SOAPBodyElement)result.elementAt(0)).getAsDOM();
+      }
     }
     catch (AxisFault fault) {
 
@@ -106,7 +108,9 @@ public class AxisTransport implements Tr
       Object[] soapBodies = new Object[] { body };
     
       Vector result = (Vector)call.invoke(soapBodies);
-      response = ((SOAPBodyElement)result.elementAt(0)).getAsString();
+      if (result.size() > 0 ) {
+         response = ((SOAPBodyElement)result.elementAt(0)).getAsString();
+      }
     }
     catch (AxisFault fault) {
 

Modified: 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiV3Helper.java
URL: 
http://svn.apache.org/viewvc/juddi/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiV3Helper.java?rev=1140769&r1=1140768&r2=1140769&view=diff
==============================================================================
--- 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiV3Helper.java
 (original)
+++ 
juddi/scout/trunk/src/main/java/org/apache/ws/scout/util/ScoutJaxrUddiV3Helper.java
 Tue Jun 28 18:14:30 2011
@@ -284,14 +284,14 @@ public class ScoutJaxrUddiV3Helper 
                        String key) throws JAXRException {
                PublisherAssertion pa = 
objectFactory.createPublisherAssertion();
                try {
-                       StringTokenizer token = new StringTokenizer(key, ":");
+                       StringTokenizer token = new StringTokenizer(key, "|");
                        if (token.hasMoreTokens()) {
                pa.setFromKey(getToken(token.nextToken()));
                pa.setToKey(getToken(token.nextToken()));
                                KeyedReference kr = 
objectFactory.createKeyedReference();
                                // Sometimes the Key is UUID:something
                String str = getToken(token.nextToken());
-                               if ("UUID".equals(str))
+                               if ("UUID".equalsIgnoreCase(str))
                                        str += ":" + 
getToken(token.nextToken());
                kr.setTModelKey(str);
                kr.setKeyName(getToken(token.nextToken()));



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to