Author: lresende
Date: Wed May 14 13:23:49 2008
New Revision: 656408

URL: http://svn.apache.org/viewvc?rev=656408&view=rev
Log:
TUSCANY-2321 - Workaround to properly handle different DOM object types 
produced by data binding framework

Modified:
    
incubator/tuscany/java/sca/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java

Modified: 
incubator/tuscany/java/sca/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java?rev=656408&r1=656407&r2=656408&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java
 Wed May 14 13:23:49 2008
@@ -130,6 +130,13 @@
             mex = 
odeServer.getBpelServer().getEngine().createMessageExchange(new 
GUID().toString(),
                                                                               
bpelServiceName,
                                                                               
bpelOperationName);
+            /*
+            if(__log.isDebugEnabled()) {
+                Element invocationRequest = mex.getRequest().getMessage();
+                __log.debug(">>>Request:\n" + 
DOMUtils.domToString(invocationRequest));
+                
+            }*/
+            
             onhold = mex.invoke(createInvocationMessage(mex, args));
             
             txMgr.commit();
@@ -159,15 +166,15 @@
             // be sure we have the "freshest" one.
             mex = 
(MyRoleMessageExchange)odeServer.getBpelServer().getEngine().getMessageExchange(mex.getMessageExchangeId());
 
-            Status status = mex.getStatus();
-            Element invocationResponse = mex.getResponse().getMessage();
-        
             if(__log.isDebugEnabled()) {
-                __log.debug("Invocation status:" + status.name());
-                __log.debug("Response:\n" + 
DOMUtils.domToString(invocationResponse));
+                Status status = mex.getStatus();
+                Element invocationResponse = mex.getResponse().getMessage();
+
+                __log.debug(">>>Invocation status:" + status.name());
+                __log.debug(">>>Response:\n" + 
DOMUtils.domToString(invocationResponse));
             }
             //process the method invocation result
-            response = processResponse(invocationResponse);
+            response = processResponse(mex.getResponse().getMessage());
             
             txMgr.commit();
             // end of transaction two
@@ -201,15 +208,22 @@
         
         Element contentMessage = dom.createElement("message");
         Element contentPart = 
dom.createElement(bpelOperationInputPart.getName());
-        Element contentInvocation = (Element) args[0];
+        Element payload = null;
+        
+        //TUSCANY-2321 - Properly handling Document or Element types
+        if(args[0] instanceof Document) {
+            payload = (Element) ((Document) args[0]).getFirstChild();
+        } else {
+            payload = (Element) args[0];
+        }
         
-        contentPart.appendChild(dom.importNode(contentInvocation, true));
+        contentPart.appendChild(dom.importNode(payload, true));
         contentMessage.appendChild(contentPart);
         dom.appendChild(contentMessage);
         
         if(__log.isDebugEnabled()) {
             __log.debug("Creating invocation message:");
-            __log.debug(">> args.....: " + DOMUtils.domToString((Element) 
args[0]));
+            __log.debug(">> args.....: " + DOMUtils.domToString(payload));
             __log.debug(">> message..:" + 
DOMUtils.domToString(dom.getDocumentElement()));
         }
 


Reply via email to