You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/10/10 08:05:43 UTC

svn commit: r454634 - in /incubator/tuscany/cpp/sca/runtime/extensions/ws: reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp

Author: jsdelfino
Date: Mon Oct  9 23:05:43 2006
New Revision: 454634

URL: http://svn.apache.org/viewvc?view=rev&rev=454634
Log:
Fix for JIRA TUSCANY-816, allocate DataObjectPtrs using new instead of local variables, which will become invalid when they get out of scope

Modified:
    incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
    incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp

Modified: incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp?view=diff&rev=454634&r1=454633&r2=454634
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp Mon Oct  9 23:05:43 2006
@@ -614,19 +614,19 @@
                         break;
                     case Type::DataObjectType:
                         {
-                            DataObjectPtr dataObjectData = outputDataObject->getDataObject(pl[i]);
+                            DataObjectPtr* dataObjectData = new DataObjectPtr;
+                            *dataObjectData = outputDataObject->getDataObject(pl[i]);
                             if(!dataObjectData)
                             {
                                 LOGINFO(4, "SDO DataObject return value was null");
                             }
-                            operation.setReturnValue(&dataObjectData);
+                            operation.setReturnValue(dataObjectData);
                         }
                         break;
                     case Type::OpenDataObjectType:
                         {         
                             /*
                              * This code deals with xsd:any element parameters
-                             * Get each element as a DataObject and add in to the parameter list
                              */
             
                             DataObjectList& dataObjectList = outputDataObject->getList(pl[i]);
@@ -636,7 +636,9 @@
                                 DataObjectPtr dataObjectData = dataObjectList[j];
                                 if(!dataObjectData)
                                 {
-                                    operation.setReturnValue(&dataObjectData);
+                                    DataObjectPtr* dob = new DataObjectPtr;
+                                    *dob = NULL;
+                                    operation.setReturnValue(dob);
                                     LOGINFO(4, "SDO OpenDataObject return value was null");
                                 }
                                 else 
@@ -654,12 +656,13 @@
                                         else
                                         {
                                             // Return a DataObject representing a complex element
-                                            DataObjectPtr dob = sequence->getDataObjectValue(0);
-                                            if(!dob)
+                                            DataObjectPtr* dob = new DataObjectPtr;
+                                            *dob = sequence->getDataObjectValue(0);
+                                            if(!*dob)
                                             {
                                                 LOGINFO(4, "SDO DataObject return value was null");
                                             }
-                                            operation.setReturnValue(&dob);
+                                            operation.setReturnValue(dob);
                                         }
                                     }
                                     else

Modified: incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp?view=diff&rev=454634&r1=454633&r2=454634
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp Mon Oct  9 23:05:43 2006
@@ -233,13 +233,14 @@
                                 break;
                             case Type::DataObjectType:
                                 {
-                                    DataObjectPtr dataObjectData = inputDataObject->getDataObject(pl[i]);
+                                    DataObjectPtr* dataObjectData = new DataObjectPtr;
+                                    *dataObjectData = inputDataObject->getDataObject(pl[i]);
                     
                                     if(!dataObjectData)
                                     {
                                         LOGINFO_1(4, "SDO DataObject parameter named %s was null", name);
                                     }
-                                    operation.addParameter(&dataObjectData);
+                                    operation.addParameter(dataObjectData);
                                 }
                                 break;
                             case Type::OpenDataObjectType:
@@ -260,7 +261,9 @@
                                             
                                             // Add a null DataObject ptr
                                             LOGINFO_2(4, "SDO OpenDataObject parameter named %s[%d] was null", name, j);
-                                            operation.addParameter(&dataObjectData);
+                                            DataObjectPtr* dob = new DataObjectPtr;
+                                            *dob = NULL;
+                                            operation.addParameter(dob);
                                         }
                                         else
                                         {
@@ -277,12 +280,13 @@
                                                 else
                                                 {
                                                     // Add a complex element DataObject
-                                                    DataObjectPtr dob = sequence->getDataObjectValue(0);
-                                                    if(!dob)
+                                                    DataObjectPtr* dob = new DataObjectPtr;
+                                                    *dob = sequence->getDataObjectValue(0);
+                                                    if(!*dob)
                                                     {
                                                         LOGINFO_1(4, "SDO DataObject parameter named %s was null", name);
                                                     }
-                                                    operation.addParameter(&dob);
+                                                    operation.addParameter(dob);
                                                 }
                                             }
                                             else



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org