[ http://issues.apache.org/jira/browse/AXISCPP-858?page=comments#action_12372078 ]
Adrian Dick commented on AXISCPP-858: ------------------------------------- Hi, A number of changes have been made between 1.5final and the 1.6beta to resolve problems as you describe here. Can you confirm if this is still a problem with the latest drivers. Thanks, Adrian > client stub delete Ret; causes Debug Assertion Failed! Win32 > ------------------------------------------------------------ > > Key: AXISCPP-858 > URL: http://issues.apache.org/jira/browse/AXISCPP-858 > Project: Axis-C++ > Type: Bug > Components: Client - Stub > Versions: 1.5 Final > Environment: client-Windows XP > server-Windows XP Apache Axis Java 1.2.1 deployed on Tomcat 5.5.9 > Reporter: Brian Brooks > > The stub generated by > java -classpath %lib%\..\axis\wsdl2ws.jar;%axis% > org.apache.axis.wsdl.wsdl2ws.WSDL2Ws %wsdl% -o./ClientOut -lc++ -sclient > has a defect. In a debug win32 build, this results in the Microsoft runtime > stopping the a client with a failed assertion > /* > * If this ASSERT fails, a bad pointer has been passed in. It may be > * totally bogus, or it may have been allocated from another heap. > * The pointer MUST come from the 'local' heap. > */ > _ASSERTE(_CrtIsValidHeapPointer(pUserData)); > the call stack at the point of failure is > _free_dbg(void *, int) > free(void *) > operator delete(void *) > Calculator::add(int, int) > main(int, char * *) > The Calculator::add(int, int) function is declared in the generated stub > Calculator.cpp. This function is shown below. The line that reads > delete Ret; > seems to be the problem. > /*Methods corresponding to the web service methods*/ > /* > * This method wrap the service method add > */ > xsd__int Calculator::add(xsd__int Value0, xsd__int Value1) > { > xsd__int* Ret = NULL; > const char* pcCmplxFaultName; > try > { > if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER)) > return *Ret; > if (NULL==m_pCall->getTransportProperty("SOAPAction",false)) > { > m_pCall->setTransportProperty(SOAPACTION_HEADER , ""); > } > m_pCall->setSOAPVersion(SOAP_VER_1_1); > m_pCall->setOperation("add", > "http://localhost:8080/axis/Calculator.jws"); > applyUserPreferences(); > m_pCall->addParameter((void*)&Value0, "i1", XSD_INT); > m_pCall->addParameter((void*)&Value1, "i2", XSD_INT); > if (AXIS_SUCCESS == m_pCall->invoke()) > { > if(AXIS_SUCCESS == m_pCall->checkMessage("addResponse", > "http://localhost:8080/axis/Calculator.jws")) > { > Ret = m_pCall->getElementAsInt("addReturn", 0); > } > } > m_pCall->unInitialize(); > xsd__int r = *Ret; > delete Ret; > return r; > } > catch(AxisException& e) > { > int iExceptionCode = e.getExceptionCode(); > if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode) > { > throw SoapFaultException(e); > } > ISoapFault* pSoapFault = (ISoapFault*) > > m_pCall->checkFault("Fault","http://localhost:8080/axis/Calculator.jws" ); > if(pSoapFault) > { > m_pCall->unInitialize(); > throw SoapFaultException(e); > } > else throw; > } > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
