You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2005/06/28 10:37:02 UTC

cvs commit: ws-axis/c/src/transport/axis3 ChannelFactory.cpp

samisa      2005/06/28 01:37:02

  Modified:    c/src/engine HandlerLoader.cpp SOAPTransportFactory.cpp
                        XMLParserFactory.cpp
               c/src/transport/axis3 ChannelFactory.cpp
  Log:
  Included the logic to have better error messages in case of errors on loading libs.
  Used GETLASTERROR and PLATFORM_GET_ERROR_MESSAGE
  Fix for AXISCPP-548
  
  Revision  Changes    Path
  1.36      +13 -1     ws-axis/c/src/engine/HandlerLoader.cpp
  
  Index: HandlerLoader.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/HandlerLoader.cpp,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- HandlerLoader.cpp	23 Mar 2005 15:44:58 -0000	1.35
  +++ HandlerLoader.cpp	28 Jun 2005 08:37:02 -0000	1.36
  @@ -86,7 +86,19 @@
       if (!pHandlerInfo->m_Handler)
       {
           AXISTRACE1("SERVER_ENGINE_LIBRARY_LOADING_FAILED", CRITICAL);
  -        throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, PLATFORM_LOADLIB_ERROR);
  +
  +        long dwError = GETLASTERROR
  +        string *    message = PLATFORM_GET_ERROR_MESSAGE( dwError);
  +        char        fullMessage[1024];
  +        sprintf(fullMessage,
  +                "Failed to load handler within server engine: \n \
  +                Error Message='%s'\
  +                Error Code='%d'\n",
  +                message->c_str(), (int) dwError);
  +
  +        delete( message);
  +
  +        throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, fullMessage);
       }
   
       return AXIS_SUCCESS;
  
  
  
  1.29      +12 -1     ws-axis/c/src/engine/SOAPTransportFactory.cpp
  
  Index: SOAPTransportFactory.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/SOAPTransportFactory.cpp,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- SOAPTransportFactory.cpp	27 May 2005 10:25:59 -0000	1.28
  +++ SOAPTransportFactory.cpp	28 Jun 2005 08:37:02 -0000	1.29
  @@ -126,7 +126,18 @@
       if (!m_LibHandler)
       {
           AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
  -        throw AxisEngineException(SERVER_ENGINE_LOADING_TRANSPORT_FAILED, PLATFORM_LOADLIB_ERROR);
  +        long dwError = GETLASTERROR
  +        string *    message = PLATFORM_GET_ERROR_MESSAGE( dwError);
  +        char        fullMessage[1024];
  +        sprintf(fullMessage,
  +                "Failed to load transport within server engine: \n \
  +                Error Message='%s'\
  +                Error Code='%d'\n",
  +                message->c_str(), (int) dwError);
  +
  +        delete( message);
  +
  +        throw AxisEngineException(SERVER_ENGINE_LOADING_TRANSPORT_FAILED, fullMessage);
       }
       return AXIS_SUCCESS;
   }
  
  
  
  1.25      +13 -1     ws-axis/c/src/engine/XMLParserFactory.cpp
  
  Index: XMLParserFactory.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/XMLParserFactory.cpp,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- XMLParserFactory.cpp	13 May 2005 16:06:58 -0000	1.24
  +++ XMLParserFactory.cpp	28 Jun 2005 08:37:02 -0000	1.25
  @@ -122,7 +122,19 @@
       if (!m_LibHandler)
       {
           AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , CRITICAL);
  -        throw AxisEngineException(SERVER_ENGINE_LOADING_PARSER_FAILED, PLATFORM_LOADLIB_ERROR);
  +
  +        long dwError = GETLASTERROR
  +        string *    message = PLATFORM_GET_ERROR_MESSAGE( dwError);
  +        char        fullMessage[1024];
  +        sprintf(fullMessage,
  +                "Failed to load parser within server engine: \n \
  +                Error Message='%s'\
  +                Error Code='%d'\n",
  +                message->c_str(), (int) dwError);
  +
  +        delete( message);
  +
  +        throw AxisEngineException(SERVER_ENGINE_LOADING_PARSER_FAILED, fullMessage);
       }
   
       return AXIS_SUCCESS;
  
  
  
  1.17      +25 -2     ws-axis/c/src/transport/axis3/ChannelFactory.cpp
  
  Index: ChannelFactory.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/transport/axis3/ChannelFactory.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- ChannelFactory.cpp	27 May 2005 10:25:59 -0000	1.16
  +++ ChannelFactory.cpp	28 Jun 2005 08:37:02 -0000	1.17
  @@ -67,7 +67,18 @@
   
   		if( !sLibHandler)
   		{
  -			throw HTTPTransportException( SERVER_TRANSPORT_LOADING_CHANNEL_FAILED, PLATFORM_LOADLIB_ERROR);
  +                        long dwError = GETLASTERROR
  +                        string *    message = PLATFORM_GET_ERROR_MESSAGE( dwError);
  +                        char        fullMessage[1024];
  +                        sprintf(fullMessage,
  +                                "Failed to load transport channel within server engine: \n \
  +                                 Error Message='%s'\
  +                                 Error Code='%d'\n",
  +                                 message->c_str(), (int) dwError);
  +
  +                        delete( message);
  +
  +			throw HTTPTransportException( SERVER_TRANSPORT_LOADING_CHANNEL_FAILED, fullMessage);
   		}
   		else
   		{
  @@ -190,7 +201,19 @@
   	if( !pCh->m_Library)
   	{
   		delete pCh;
  -		throw HTTPTransportException( SERVER_TRANSPORT_LOADING_CHANNEL_FAILED, PLATFORM_LOADLIB_ERROR);
  +           
  +                long dwError = GETLASTERROR
  +                string *    message = PLATFORM_GET_ERROR_MESSAGE( dwError);
  +                char        fullMessage[1024];
  +                sprintf(fullMessage,
  +                        "Failed to load transport channel within server engine: \n \
  +                         Error Message='%s'\
  +                         Error Code='%d'\n",
  +                         message->c_str(), (int) dwError);
  +
  +                delete( message);
  +
  +		throw HTTPTransportException( SERVER_TRANSPORT_LOADING_CHANNEL_FAILED, fullMessage);
   	}
   
   	pCh->m_Create = (CREATE_OBJECT3) PLATFORM_GETPROCADDR( pCh->m_Library, CREATE_FUNCTION3);