Author: kstam
Date: Tue Jan 24 14:34:26 2012
New Revision: 1235266

URL: http://svn.apache.org/viewvc?rev=1235266&view=rev
Log:
JUDDI-539 fixing exception handling

Modified:
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/RequestHandler.java
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/UDDIPublicationService.java

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/RequestHandler.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/RequestHandler.java?rev=1235266&r1=1235265&r2=1235266&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/RequestHandler.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/RequestHandler.java
 Tue Jan 24 14:34:26 2012
@@ -16,10 +16,7 @@
 package org.apache.juddi.v3.client.transport.wrapper;
 
 import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.net.URLEncoder;
 import java.rmi.Remote;
 import java.util.List;
 
@@ -39,12 +36,14 @@ import org.apache.juddi.jaxb.JAXBMarshal
 import org.uddi.api_v3.AssertionStatusItem;
 import org.uddi.api_v3.AssertionStatusReport;
 import org.uddi.api_v3.CompletionStatus;
+import org.uddi.api_v3.DispositionReport;
 import org.uddi.api_v3.GetAssertionStatusReport;
 import org.uddi.api_v3.GetPublisherAssertions;
 import org.uddi.api_v3.PublisherAssertion;
 import org.uddi.api_v3.PublisherAssertions;
 import org.uddi.api_v3.PublisherAssertionsResponse;
 import org.uddi.api_v3.SetPublisherAssertions;
+import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -56,15 +55,14 @@ import org.w3c.dom.Node;
 public class RequestHandler
 {
   // private reference to the webapp's logger.
-  private static Log log = LogFactory.getLog(RequestHandler.class);
+  //private static Log log = LogFactory.getLog(RequestHandler.class);
   
   // XML Document Builder
   private static DocumentBuilder docBuilder = null;
   
   private volatile String version;
   private volatile String operation;
-  private volatile Node response;
-  private volatile String exception;
+
   private volatile Remote portType; 
   private volatile String methodName;
   private volatile Class<?> operationClass;
@@ -129,8 +127,15 @@ public class RequestHandler
   }
 
   
-  public Node invoke(Element uddiReq)
+  @SuppressWarnings("unchecked")
+public Node invoke(Element uddiReq) throws Exception
   {
+    Node response = null;
+    // Create a new 'temp' XML element to use as a container 
+    // in which to marshal the UDDI response data into.
+    DocumentBuilder docBuilder = getDocumentBuilder();
+    Document document = docBuilder.newDocument();
+    Element element = document.createElement("temp");
     try 
     { 
       // Lookup the appropriate XML handler.  Throw an 
@@ -149,12 +154,11 @@ public class RequestHandler
       } else if (operationClass.equals(SetPublisherAssertions.class)) {
           SetPublisherAssertions setPublisherAssertions = 
(SetPublisherAssertions) uddiReqObj;
           Method method = portType.getClass().getMethod(methodName, 
String.class, Holder.class);
-          Holder holder = new 
Holder(setPublisherAssertions.getPublisherAssertion());
+          Holder<List<PublisherAssertion>> holder = new 
Holder<List<PublisherAssertion>>(setPublisherAssertions.getPublisherAssertion());
           result = method.invoke(portType, 
setPublisherAssertions.getAuthInfo(), holder);
-          List<PublisherAssertion> publisherAssertionList = 
(List<PublisherAssertion>) holder.value;
           PublisherAssertions assertions = new PublisherAssertions();
-          if (publisherAssertionList!=null) {
-              
assertions.getPublisherAssertion().addAll(publisherAssertionList);
+          if (holder.value!=null) {
+              assertions.getPublisherAssertion().addAll(holder.value);
           }
           result = assertions;
       } else if (operationClass.equals(GetPublisherAssertions.class)) {
@@ -162,11 +166,11 @@ public class RequestHandler
           Method method = portType.getClass().getMethod(methodName, 
String.class);
           result = method.invoke(portType, 
getPublisherAssertions.getAuthInfo());
           List<PublisherAssertion> assertionList = (List<PublisherAssertion>) 
result;
-          PublisherAssertionsResponse response = new 
PublisherAssertionsResponse();
+          PublisherAssertionsResponse publisherAssertionsResponse = new 
PublisherAssertionsResponse();
           if (assertionList!=null) {
-              response.getPublisherAssertion().addAll(assertionList);
+              
publisherAssertionsResponse.getPublisherAssertion().addAll(assertionList);
           }
-          result = response;
+          result = publisherAssertionsResponse;
       } else {
           Method method = portType.getClass().getMethod(methodName, 
operationClass);
           result = method.invoke(portType, (Object) uddiReqObj);
@@ -183,12 +187,6 @@ public class RequestHandler
           "type is unknown: " +uddiResObj.getClass().getName());
       */
       
-      // Create a new 'temp' XML element to use as a container 
-      // in which to marshal the UDDI response data into.
-     
-      DocumentBuilder docBuilder = getDocumentBuilder();
-      Document document = docBuilder.newDocument();
-      Element element = document.createElement("temp");
       // Lookup the appropriate response handler and marshal 
       // the juddi object into the appropriate xml format (we 
       // only support UDDI v2.0 at this time).  Attach the
@@ -201,40 +199,17 @@ public class RequestHandler
           // this child to the soap response body
           document.appendChild(element.getFirstChild());
       }
-      
-      setResponse(document);
-    } catch (InvocationTargetException ite) {
-       Throwable t = ite.getTargetException();
-       String errorMessage = "";
-       if (t.getCause() != null) {
-               while (t.getCause() != null) {
-                       t = t.getCause();
-               }
-               errorMessage = t.getMessage() != null ?
-                               t.getMessage() : "";
+      response = document;
+    } catch (Exception e) {
+       DispositionReport dr = 
DispositionReportFaultMessage.getDispositionReport(e);
+       if (dr != null) {
+           JAXBMarshaller.marshallToElement(dr, "org.uddi.api_v3", element);
+           document.appendChild(element.getFirstChild());
+           response = document;
        } else {
-               errorMessage = ite.getTargetException().getMessage() != null ? 
-                               ite.getTargetException().getMessage() : "";
+           throw e;
        }
-       String message;
-               try {
-                       message = URLEncoder.encode(errorMessage,"UTF-8");
-               } catch (UnsupportedEncodingException e) {
-                       message = e.getMessage();
-               }
-       log.error(message);
-       setException(message);
-    }
-    catch(Exception ex) // Catch any other exceptions
-    {
-       String message;
-               try {
-                       message = URLEncoder.encode(ex.getMessage(), "UTF-8");
-               } catch (UnsupportedEncodingException e) {
-                       message = e.getMessage();
-               }
-        log.error(ex.getMessage(),ex);
-        setException(message);
+       //log.error(e.getMessage(),e);
     }
     return response;
   }
@@ -276,12 +251,7 @@ public String getOperation() {
 public void setOperation(String operation) {
     this.operation = operation;
 }
-public Node getResponse() {
-    return response;
-}
-public void setResponse(Node response) {
-    this.response = response;
-}
+
 public Remote getPortType() {
        return portType;
 }
@@ -306,10 +276,5 @@ public String getVersion() {
 public void setVersion(String version) {
     this.version = version;
 }
-public String getException() {
-    return exception;
-}
-public void setException(String exception) {
-    this.exception = exception;
-}
+
 }

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/UDDIPublicationService.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/UDDIPublicationService.java?rev=1235266&r1=1235265&r2=1235266&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/UDDIPublicationService.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/wrapper/UDDIPublicationService.java
 Tue Jan 24 14:34:26 2012
@@ -112,9 +112,6 @@ public class UDDIPublicationService {
            validateRequest(operation);
 
            Node temp = requestHandler.invoke(uddiReq);
-           if (requestHandler.getException()!=null) {
-               throw new Exception(requestHandler.getException());
-           }
 
            return temp;
        }



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

Reply via email to