You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Valentine Kouznetsov <vk...@yahoo.com> on 2004/08/20 15:35:38 UTC

various bugs found, see attached patch

Dear Axis developers,
I found several bugs, design flows in Axis C++ 1.2
code. Instead of reporting 
a bug I'm sending you a patch which fix the following
bugs:

1) The code cannot handle 100 HTTP request Code
According to HTTP 1.1 specification you may get 100
code which means that 
server is still not ready to give OK request and you
need to continue

2) Using HARDCODED PATH to "/usr/local/Axis/" is EVIL.
I'm a user not a 
sys-admin on 800 nodes in our cluster and I don't have
privilages to write to 
this location. The fix I applied is to introduce
environment variable instead 
of hardcoded path

3) Using enum (CRITICAL and other) without namespace
MAY lead that your code 
can overlap with code on client legacy application and
conflict with it. I 
changed CRITICAL, etc. to AXIS_CRITICAL. It's not the
best way to do (better 
would be use namespace), but it's unlikely to overlap
with our code.

4) Bug in AxisTransport.cpp where you reject to read
rest of the buffer if 
it's bigger you buffer size (which is 1024). For long
soap messages (which I 
doubt you tested) the XMLParser can handle to parse
them in chunks. But 
AxisTransport.cpp was unable to deliver correctly
parts of long soap message.
To fix this I applied
 AXIS_TRANSPORT_STATUS AxisTransport::getBytes(char*
pcBuffer, int* pSize)
 {
-    if (0 <= m_iBytesLeft)
+    if (0 >= m_iBytesLeft)

5) It's worthwhile to mentioned that you're using in a
wrong way string class.
Instead of using 
strlen (m_PayLoad.c_str ());
it's better (and faster) to use
m_PayLoad.size()
since m_PayLoad is a string.
I found quite a lot of places where you mismatch C and
C++.

I appreciate your effort of developing such nice
package and hope you will 
consider my comments seriously and apply the patch I
provide.

The patch was done against axis-c-src-1-2-linux code
and can be applied as
patch -p0 < axis.patch

(You need to stay in directory where
axis-c-src-1-2-linux resides).

If you need further assistance don't hesitate to
contact me.
Sincerely,
Valentin.


		
_______________________________
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush

Re: various bugs found, see attached patch

Posted by John Hawkins <HA...@uk.ibm.com>.



+1 if nothing set in config file.

John Hawkins
IBM,
AspectX Architect,
C web services client dev.

+44 (0) 1962 817131



                                                                           
             Valentine                                                     
             Kouznetsov                                                    
             <vkuznet@yahoo.co                                          To 
             m>                        Apache AXIS C Developers List       
                                       <ax...@ws.apache.org>          
             10/09/2004 17:02                                           cc 
                                                                           
                                                                   Subject 
             Please respond to         Re: various bugs found, see         
              "Apache AXIS C           attached patch                      
             Developers List"                                              
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi Damitha,
thanks for applying my patches.
Regarding hardcoded path. I still disagree since
in our application we are not deploying Axis, we are
using it as a part. That means we link agaist axis
libraries. We are not using any configuration files
and it is not necessary for our case. I would suggest
to remove /usr/local/Axis/libs path at all, leave
names of the libraries, such as  libaxis_xmlparser.so
and rely on LD_LIBRARY_PATH (the way I originally
propose it is also not good, since it introduce new
environment variables). Since your code uses dlopen
the libraries would be found according to system
settings or LD_LIBRARY_PATH.
Valentin.


--- damitha kumarage <da...@opensource.lk> wrote:

> Hi
>
> On Fri, 2004-08-20 at 19:35, Valentine Kouznetsov
> wrote:
> > Dear Axis developers,
> > I found several bugs, design flows in Axis C++ 1.2
> > code. Instead of reporting
> > a bug I'm sending you a patch which fix the
> following
> > bugs:
> >
> > 1) The code cannot handle 100 HTTP request Code
> > According to HTTP 1.1 specification you may get
> 100
> > code which means that
> > server is still not ready to give OK request and
> you
> > need to continue
>
> done
>
> >
> > 2) Using HARDCODED PATH to "/usr/local/Axis/" is
> EVIL.
> > I'm a user not a
> > sys-admin on 800 nodes in our cluster and I don't
> have
> > privilages to write to
> > this location. The fix I applied is to introduce
> > environment variable instead
> > of hardcoded path
>
> Actually this is not hard coded. The are just
> default values
> that the engine assumes if it cannot determine them
> from
> the configuration file at
> $AXICPP_DEPLLY/etc/axiscpp.conf
>
>
> > 4) Bug in AxisTransport.cpp where you reject to
> read
> > rest of the buffer if
> > it's bigger you buffer size (which is 1024). For
> long
> > soap messages (which I
> > doubt you tested) the XMLParser can handle to
> parse
> > them in chunks. But
> > AxisTransport.cpp was unable to deliver correctly
> > parts of long soap message.
> > To fix this I applied
> >  AXIS_TRANSPORT_STATUS
> AxisTransport::getBytes(char*
> > pcBuffer, int* pSize)
> >  {
> > -    if (0 <= m_iBytesLeft)
> > +    if (0 >= m_iBytesLeft)
> >
>
> done
>
> > 5) It's worthwhile to mentioned that you're using
> in a
> > wrong way string class.
> > Instead of using
> > strlen (m_PayLoad.c_str ());
> > it's better (and faster) to use
> > m_PayLoad.size()
> > since m_PayLoad is a string.
> > I found quite a lot of places where you mismatch C
> and
> > C++.
>
> true
>
> regds
> damitha
>
> >
> > I appreciate your effort of developing such nice
> > package and hope you will
> > consider my comments seriously and apply the patch
> I
> > provide.
> >
> > The patch was done against axis-c-src-1-2-linux
> code
> > and can be applied as
> > patch -p0 < axis.patch
> >
> > (You need to stay in directory where
> > axis-c-src-1-2-linux resides).
> >
> > If you need further assistance don't hesitate to
> > contact me.
> > Sincerely,
> > Valentin.
> >
> >
> >
> > _______________________________
> > Do you Yahoo!?
> > Win 1 of 4,000 free domain names from Yahoo! Enter
> now.
> > http://promotions.yahoo.com/goldrush
> >
> >
>
______________________________________________________________________
> >
> > diff -Naur
> axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> 2004-07-09 07:22:04.000000000 +0000
> > +++
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> 2004-08-18 16:35:50.246450056 +0000
> > @@ -25,7 +25,8 @@
> >  #include <axis/server/AxisFile.h>
> >  #include "AxisUtils.h"
> >  #include <stdlib.h>
> > -#include <stdio.h>
> > +//#include <stdio.h>
> > +#include <iostream>
> >  #include <string.h>
> >
> >  AxisConfig::AxisConfig ()
> > @@ -58,8 +59,22 @@
> >      m_pcValueArray[AXCONF_NODENAME] = "server
> name";
> >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> port";
> >  #else
> > -        m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > -        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> > +    char* axis_xmlparser =
> getenv("AXIS_XMLPARSER");
> > +    if(!axis_xmlparser) {
> > +      std::cerr<<"No AXIS_XMLPARSER environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_XMLPARSER] =
> axis_xmlparser;
> > +    }
> > +    char* axis_transport =
> getenv("AXIS_TRANSPORT");
> > +    if(!axis_transport) {
> > +       std::cerr<<"No AXIS_TRANSPORT environment
> variable found"<<endl;
> > +       exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> axis_transport;
> > +    }
> > +//        m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> >      m_pcValueArray[AXCONF_NODENAME] = "server
> name";
> >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> port";
> >  #endif
> > @@ -68,10 +83,38 @@
> >      m_pcValueArray[AXCONF_XMLPARSER] =
> "AxisXMLParser.dll";
> >          m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "AxisTransport.dll";
> >  #else
> > -        m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > -        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> > -        m_pcValueArray[AXCONF_LOGPATH] =
> "/usr/local/Axis/logs/AxisLog";
> > -        m_pcValueArray[AXCONF_CLIENTLOGPATH] =
> "/usr/local/Axis/logs/AxisClientLog";
> > +    char* axis_xmlparser =
> getenv("AXIS_XMLPARSER");
> > +    if(!axis_xmlparser) {
> > +      std::cerr<<"No AXIS_XMLPARSER environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_XMLPARSER] =
> axis_xmlparser;
> > +    }
> > +    char* axis_transport =
> getenv("AXIS_TRANSPORT");
> > +    if(!axis_transport) {
> > +      std::cerr<<"No AXIS_TRANSPORT environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> axis_transport;
> > +    }
>
=== message truncated ===




_______________________________
Do you Yahoo!?
Shop for Back-to-School deals on Yahoo! Shopping.
http://shopping.yahoo.com/backtoschool



Re: various bugs found, see attached patch

Posted by sanjaya singharage <sa...@opensource.lk>.
This seems to be the better choice.
+1

sanjaya.
----- Original Message ----- 
From: "Samisa Abeysinghe" <sa...@yahoo.com>
To: "Apache AXIS C Developers List" <ax...@ws.apache.org>
Sent: Monday, September 13, 2004 7:17 AM
Subject: Re: various bugs found, see attached patch


> 
> --- Valentine Kouznetsov <vk...@yahoo.com> wrote:
> > I would suggest
> > to remove /usr/local/Axis/libs path at all, leave
> > names of the libraries, such as  libaxis_xmlparser.so
> > and rely on LD_LIBRARY_PATH 
> 
> +1
> 
> Samisa...
> 
> 
> > Hi Damitha,
> > thanks for applying my patches.
> > Regarding hardcoded path. I still disagree since
> > in our application we are not deploying Axis, we are
> > using it as a part. That means we link agaist axis
> > libraries. We are not using any configuration files
> > and it is not necessary for our case. I would suggest
> > to remove /usr/local/Axis/libs path at all, leave
> > names of the libraries, such as  libaxis_xmlparser.so
> > and rely on LD_LIBRARY_PATH (the way I originally
> > propose it is also not good, since it introduce new
> > environment variables). Since your code uses dlopen
> > the libraries would be found according to system
> > settings or LD_LIBRARY_PATH.
> > Valentin.
> > 
> > 
> > --- damitha kumarage <da...@opensource.lk> wrote:
> > 
> > > Hi
> > > 
> > > On Fri, 2004-08-20 at 19:35, Valentine Kouznetsov
> > > wrote:
> > > > Dear Axis developers,
> > > > I found several bugs, design flows in Axis C++ 1.2
> > > > code. Instead of reporting 
> > > > a bug I'm sending you a patch which fix the
> > > following
> > > > bugs:
> > > > 
> > > > 1) The code cannot handle 100 HTTP request Code
> > > > According to HTTP 1.1 specification you may get
> > > 100
> > > > code which means that 
> > > > server is still not ready to give OK request and
> > > you
> > > > need to continue
> > > 
> > > done
> > > 
> > > > 
> > > > 2) Using HARDCODED PATH to "/usr/local/Axis/" is
> > > EVIL.
> > > > I'm a user not a 
> > > > sys-admin on 800 nodes in our cluster and I don't
> > > have
> > > > privilages to write to 
> > > > this location. The fix I applied is to introduce
> > > > environment variable instead 
> > > > of hardcoded path
> > > 
> > > Actually this is not hard coded. The are just
> > > default values
> > > that the engine assumes if it cannot determine them
> > > from
> > > the configuration file at
> > > $AXICPP_DEPLLY/etc/axiscpp.conf
> > > 
> > > 
> > > > 4) Bug in AxisTransport.cpp where you reject to
> > > read
> > > > rest of the buffer if 
> > > > it's bigger you buffer size (which is 1024). For
> > > long
> > > > soap messages (which I 
> > > > doubt you tested) the XMLParser can handle to
> > > parse
> > > > them in chunks. But 
> > > > AxisTransport.cpp was unable to deliver correctly
> > > > parts of long soap message.
> > > > To fix this I applied
> > > >  AXIS_TRANSPORT_STATUS
> > > AxisTransport::getBytes(char*
> > > > pcBuffer, int* pSize)
> > > >  {
> > > > -    if (0 <= m_iBytesLeft)
> > > > +    if (0 >= m_iBytesLeft)
> > > > 
> > > 
> > > done
> > > 
> > > > 5) It's worthwhile to mentioned that you're using
> > > in a
> > > > wrong way string class.
> > > > Instead of using 
> > > > strlen (m_PayLoad.c_str ());
> > > > it's better (and faster) to use
> > > > m_PayLoad.size()
> > > > since m_PayLoad is a string.
> > > > I found quite a lot of places where you mismatch C
> > > and
> > > > C++.
> > > 
> > > true
> > > 
> > > regds
> > > damitha
> > > 
> > > > 
> > > > I appreciate your effort of developing such nice
> > > > package and hope you will 
> > > > consider my comments seriously and apply the patch
> > > I
> > > > provide.
> > > > 
> > > > The patch was done against axis-c-src-1-2-linux
> > > code
> > > > and can be applied as
> > > > patch -p0 < axis.patch
> > > > 
> > > > (You need to stay in directory where
> > > > axis-c-src-1-2-linux resides).
> > > > 
> > > > If you need further assistance don't hesitate to
> > > > contact me.
> > > > Sincerely,
> > > > Valentin.
> > > > 
> > > > 
> > > > 
> > > > _______________________________
> > > > Do you Yahoo!?
> > > > Win 1 of 4,000 free domain names from Yahoo! Enter
> > > now.
> > > > http://promotions.yahoo.com/goldrush
> > > > 
> > > >
> > >
> > ______________________________________________________________________
> > > > 
> > > > diff -Naur
> > > axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> > > axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > > > --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> > > 2004-07-09 07:22:04.000000000 +0000
> > > > +++
> > > axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > > 2004-08-18 16:35:50.246450056 +0000
> > > > @@ -25,7 +25,8 @@
> > > >  #include <axis/server/AxisFile.h>
> > > >  #include "AxisUtils.h"
> > > >  #include <stdlib.h>
> > > > -#include <stdio.h>
> > > > +//#include <stdio.h>
> > > > +#include <iostream>
> > > >  #include <string.h>
> > > >  
> > > >  AxisConfig::AxisConfig ()
> > > > @@ -58,8 +59,22 @@
> > > >      m_pcValueArray[AXCONF_NODENAME] = "server
> > > name";
> > > >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> > > port";
> > > >  #else
> > > > - m_pcValueArray[AXCONF_XMLPARSER] =
> > > "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > > > - m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > > "/usr/local/Axis/libs/libaxis_transport.so";
> > > > +    char* axis_xmlparser =
> > > getenv("AXIS_XMLPARSER");
> > > > +    if(!axis_xmlparser) {
> > > > +      std::cerr<<"No AXIS_XMLPARSER environment
> > > variable found"<<endl;
> > > > +      exit(1);
> > > > +    } else {
> > > > +      m_pcValueArray[AXCONF_XMLPARSER] =
> > > axis_xmlparser;
> > > > +    }
> > > > +    char* axis_transport =
> > > getenv("AXIS_TRANSPORT");
> > > > +    if(!axis_transport) {
> > > > +       std::cerr<<"No AXIS_TRANSPORT environment
> > > variable found"<<endl; 
> > > > +       exit(1);
> > > > +    } else {
> > > > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > > axis_transport;
> > > > +    }
> > > > +//        m_pcValueArray[AXCONF_XMLPARSER] =
> > > "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > > > +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > > "/usr/local/Axis/libs/libaxis_transport.so";
> > > >      m_pcValueArray[AXCONF_NODENAME] = "server
> > > name";
> > > >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> > > port";
> > > >  #endif
> > > > @@ -68,10 +83,38 @@
> > > >      m_pcValueArray[AXCONF_XMLPARSER] =
> > > "AxisXMLParser.dll";
> > > >  m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > > "AxisTransport.dll";
> > > >  #else
> > > > - m_pcValueArray[AXCONF_XMLPARSER] =
> > > "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > > > - m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > > "/usr/local/Axis/libs/libaxis_transport.so";
> > > > -        m_pcValueArray[AXCONF_LOGPATH] =
> > > "/usr/local/Axis/logs/AxisLog";
> > > > -        m_pcValueArray[AXCONF_CLIENTLOGPATH] =
> > > "/usr/local/Axis/logs/AxisClientLog";
> > 
> === message truncated ===
> 
> 
> 
> 
> __________________________________
> Do you Yahoo!?
> Y! Messenger - Communicate in real time. Download now. 
> http://messenger.yahoo.com
> 
> 


Re: various bugs found, see attached patch

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
--- Valentine Kouznetsov <vk...@yahoo.com> wrote:
> I would suggest
> to remove /usr/local/Axis/libs path at all, leave
> names of the libraries, such as  libaxis_xmlparser.so
> and rely on LD_LIBRARY_PATH 

+1

Samisa...


> Hi Damitha,
> thanks for applying my patches.
> Regarding hardcoded path. I still disagree since
> in our application we are not deploying Axis, we are
> using it as a part. That means we link agaist axis
> libraries. We are not using any configuration files
> and it is not necessary for our case. I would suggest
> to remove /usr/local/Axis/libs path at all, leave
> names of the libraries, such as  libaxis_xmlparser.so
> and rely on LD_LIBRARY_PATH (the way I originally
> propose it is also not good, since it introduce new
> environment variables). Since your code uses dlopen
> the libraries would be found according to system
> settings or LD_LIBRARY_PATH.
> Valentin.
> 
> 
> --- damitha kumarage <da...@opensource.lk> wrote:
> 
> > Hi
> > 
> > On Fri, 2004-08-20 at 19:35, Valentine Kouznetsov
> > wrote:
> > > Dear Axis developers,
> > > I found several bugs, design flows in Axis C++ 1.2
> > > code. Instead of reporting 
> > > a bug I'm sending you a patch which fix the
> > following
> > > bugs:
> > > 
> > > 1) The code cannot handle 100 HTTP request Code
> > > According to HTTP 1.1 specification you may get
> > 100
> > > code which means that 
> > > server is still not ready to give OK request and
> > you
> > > need to continue
> > 
> > done
> > 
> > > 
> > > 2) Using HARDCODED PATH to "/usr/local/Axis/" is
> > EVIL.
> > > I'm a user not a 
> > > sys-admin on 800 nodes in our cluster and I don't
> > have
> > > privilages to write to 
> > > this location. The fix I applied is to introduce
> > > environment variable instead 
> > > of hardcoded path
> > 
> > Actually this is not hard coded. The are just
> > default values
> > that the engine assumes if it cannot determine them
> > from
> > the configuration file at
> > $AXICPP_DEPLLY/etc/axiscpp.conf
> > 
> > 
> > > 4) Bug in AxisTransport.cpp where you reject to
> > read
> > > rest of the buffer if 
> > > it's bigger you buffer size (which is 1024). For
> > long
> > > soap messages (which I 
> > > doubt you tested) the XMLParser can handle to
> > parse
> > > them in chunks. But 
> > > AxisTransport.cpp was unable to deliver correctly
> > > parts of long soap message.
> > > To fix this I applied
> > >  AXIS_TRANSPORT_STATUS
> > AxisTransport::getBytes(char*
> > > pcBuffer, int* pSize)
> > >  {
> > > -    if (0 <= m_iBytesLeft)
> > > +    if (0 >= m_iBytesLeft)
> > > 
> > 
> > done
> > 
> > > 5) It's worthwhile to mentioned that you're using
> > in a
> > > wrong way string class.
> > > Instead of using 
> > > strlen (m_PayLoad.c_str ());
> > > it's better (and faster) to use
> > > m_PayLoad.size()
> > > since m_PayLoad is a string.
> > > I found quite a lot of places where you mismatch C
> > and
> > > C++.
> > 
> > true
> > 
> > regds
> > damitha
> > 
> > > 
> > > I appreciate your effort of developing such nice
> > > package and hope you will 
> > > consider my comments seriously and apply the patch
> > I
> > > provide.
> > > 
> > > The patch was done against axis-c-src-1-2-linux
> > code
> > > and can be applied as
> > > patch -p0 < axis.patch
> > > 
> > > (You need to stay in directory where
> > > axis-c-src-1-2-linux resides).
> > > 
> > > If you need further assistance don't hesitate to
> > > contact me.
> > > Sincerely,
> > > Valentin.
> > > 
> > > 
> > > 		
> > > _______________________________
> > > Do you Yahoo!?
> > > Win 1 of 4,000 free domain names from Yahoo! Enter
> > now.
> > > http://promotions.yahoo.com/goldrush
> > > 
> > >
> >
> ______________________________________________________________________
> > > 
> > > diff -Naur
> > axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> > axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > > --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> > 2004-07-09 07:22:04.000000000 +0000
> > > +++
> > axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > 2004-08-18 16:35:50.246450056 +0000
> > > @@ -25,7 +25,8 @@
> > >  #include <axis/server/AxisFile.h>
> > >  #include "AxisUtils.h"
> > >  #include <stdlib.h>
> > > -#include <stdio.h>
> > > +//#include <stdio.h>
> > > +#include <iostream>
> > >  #include <string.h>
> > >  
> > >  AxisConfig::AxisConfig ()
> > > @@ -58,8 +59,22 @@
> > >      m_pcValueArray[AXCONF_NODENAME] = "server
> > name";
> > >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> > port";
> > >  #else
> > > -	m_pcValueArray[AXCONF_XMLPARSER] =
> > "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > > -	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > "/usr/local/Axis/libs/libaxis_transport.so";
> > > +    char* axis_xmlparser =
> > getenv("AXIS_XMLPARSER");
> > > +    if(!axis_xmlparser) {
> > > +      std::cerr<<"No AXIS_XMLPARSER environment
> > variable found"<<endl;
> > > +      exit(1);
> > > +    } else {
> > > +      m_pcValueArray[AXCONF_XMLPARSER] =
> > axis_xmlparser;
> > > +    }
> > > +    char* axis_transport =
> > getenv("AXIS_TRANSPORT");
> > > +    if(!axis_transport) {
> > > +       std::cerr<<"No AXIS_TRANSPORT environment
> > variable found"<<endl; 
> > > +       exit(1);
> > > +    } else {
> > > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > axis_transport;
> > > +    }
> > > +//        m_pcValueArray[AXCONF_XMLPARSER] =
> > "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > > +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > "/usr/local/Axis/libs/libaxis_transport.so";
> > >      m_pcValueArray[AXCONF_NODENAME] = "server
> > name";
> > >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> > port";
> > >  #endif
> > > @@ -68,10 +83,38 @@
> > >      m_pcValueArray[AXCONF_XMLPARSER] =
> > "AxisXMLParser.dll";
> > >  	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > "AxisTransport.dll";
> > >  #else
> > > -	m_pcValueArray[AXCONF_XMLPARSER] =
> > "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > > -	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> > "/usr/local/Axis/libs/libaxis_transport.so";
> > > -        m_pcValueArray[AXCONF_LOGPATH] =
> > "/usr/local/Axis/logs/AxisLog";
> > > -        m_pcValueArray[AXCONF_CLIENTLOGPATH] =
> > "/usr/local/Axis/logs/AxisClientLog";
> 
=== message truncated ===



		
__________________________________
Do you Yahoo!?
Y! Messenger - Communicate in real time. Download now. 
http://messenger.yahoo.com

Re: various bugs found, see attached patch

Posted by Valentine Kouznetsov <vk...@yahoo.com>.
Hi Damitha,
thanks for applying my patches.
Regarding hardcoded path. I still disagree since
in our application we are not deploying Axis, we are
using it as a part. That means we link agaist axis
libraries. We are not using any configuration files
and it is not necessary for our case. I would suggest
to remove /usr/local/Axis/libs path at all, leave
names of the libraries, such as  libaxis_xmlparser.so
and rely on LD_LIBRARY_PATH (the way I originally
propose it is also not good, since it introduce new
environment variables). Since your code uses dlopen
the libraries would be found according to system
settings or LD_LIBRARY_PATH.
Valentin.


--- damitha kumarage <da...@opensource.lk> wrote:

> Hi
> 
> On Fri, 2004-08-20 at 19:35, Valentine Kouznetsov
> wrote:
> > Dear Axis developers,
> > I found several bugs, design flows in Axis C++ 1.2
> > code. Instead of reporting 
> > a bug I'm sending you a patch which fix the
> following
> > bugs:
> > 
> > 1) The code cannot handle 100 HTTP request Code
> > According to HTTP 1.1 specification you may get
> 100
> > code which means that 
> > server is still not ready to give OK request and
> you
> > need to continue
> 
> done
> 
> > 
> > 2) Using HARDCODED PATH to "/usr/local/Axis/" is
> EVIL.
> > I'm a user not a 
> > sys-admin on 800 nodes in our cluster and I don't
> have
> > privilages to write to 
> > this location. The fix I applied is to introduce
> > environment variable instead 
> > of hardcoded path
> 
> Actually this is not hard coded. The are just
> default values
> that the engine assumes if it cannot determine them
> from
> the configuration file at
> $AXICPP_DEPLLY/etc/axiscpp.conf
> 
> 
> > 4) Bug in AxisTransport.cpp where you reject to
> read
> > rest of the buffer if 
> > it's bigger you buffer size (which is 1024). For
> long
> > soap messages (which I 
> > doubt you tested) the XMLParser can handle to
> parse
> > them in chunks. But 
> > AxisTransport.cpp was unable to deliver correctly
> > parts of long soap message.
> > To fix this I applied
> >  AXIS_TRANSPORT_STATUS
> AxisTransport::getBytes(char*
> > pcBuffer, int* pSize)
> >  {
> > -    if (0 <= m_iBytesLeft)
> > +    if (0 >= m_iBytesLeft)
> > 
> 
> done
> 
> > 5) It's worthwhile to mentioned that you're using
> in a
> > wrong way string class.
> > Instead of using 
> > strlen (m_PayLoad.c_str ());
> > it's better (and faster) to use
> > m_PayLoad.size()
> > since m_PayLoad is a string.
> > I found quite a lot of places where you mismatch C
> and
> > C++.
> 
> true
> 
> regds
> damitha
> 
> > 
> > I appreciate your effort of developing such nice
> > package and hope you will 
> > consider my comments seriously and apply the patch
> I
> > provide.
> > 
> > The patch was done against axis-c-src-1-2-linux
> code
> > and can be applied as
> > patch -p0 < axis.patch
> > 
> > (You need to stay in directory where
> > axis-c-src-1-2-linux resides).
> > 
> > If you need further assistance don't hesitate to
> > contact me.
> > Sincerely,
> > Valentin.
> > 
> > 
> > 		
> > _______________________________
> > Do you Yahoo!?
> > Win 1 of 4,000 free domain names from Yahoo! Enter
> now.
> > http://promotions.yahoo.com/goldrush
> > 
> >
>
______________________________________________________________________
> > 
> > diff -Naur
> axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> 2004-07-09 07:22:04.000000000 +0000
> > +++
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> 2004-08-18 16:35:50.246450056 +0000
> > @@ -25,7 +25,8 @@
> >  #include <axis/server/AxisFile.h>
> >  #include "AxisUtils.h"
> >  #include <stdlib.h>
> > -#include <stdio.h>
> > +//#include <stdio.h>
> > +#include <iostream>
> >  #include <string.h>
> >  
> >  AxisConfig::AxisConfig ()
> > @@ -58,8 +59,22 @@
> >      m_pcValueArray[AXCONF_NODENAME] = "server
> name";
> >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> port";
> >  #else
> > -	m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > -	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> > +    char* axis_xmlparser =
> getenv("AXIS_XMLPARSER");
> > +    if(!axis_xmlparser) {
> > +      std::cerr<<"No AXIS_XMLPARSER environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_XMLPARSER] =
> axis_xmlparser;
> > +    }
> > +    char* axis_transport =
> getenv("AXIS_TRANSPORT");
> > +    if(!axis_transport) {
> > +       std::cerr<<"No AXIS_TRANSPORT environment
> variable found"<<endl; 
> > +       exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> axis_transport;
> > +    }
> > +//        m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> >      m_pcValueArray[AXCONF_NODENAME] = "server
> name";
> >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> port";
> >  #endif
> > @@ -68,10 +83,38 @@
> >      m_pcValueArray[AXCONF_XMLPARSER] =
> "AxisXMLParser.dll";
> >  	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "AxisTransport.dll";
> >  #else
> > -	m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > -	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> > -        m_pcValueArray[AXCONF_LOGPATH] =
> "/usr/local/Axis/logs/AxisLog";
> > -        m_pcValueArray[AXCONF_CLIENTLOGPATH] =
> "/usr/local/Axis/logs/AxisClientLog";
> > +    char* axis_xmlparser =
> getenv("AXIS_XMLPARSER");
> > +    if(!axis_xmlparser) {
> > +      std::cerr<<"No AXIS_XMLPARSER environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_XMLPARSER] =
> axis_xmlparser;
> > +    }
> > +    char* axis_transport =
> getenv("AXIS_TRANSPORT");
> > +    if(!axis_transport) {
> > +      std::cerr<<"No AXIS_TRANSPORT environment
> variable found"<<endl; 
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> axis_transport;
> > +    }
> 
=== message truncated ===



		
_______________________________
Do you Yahoo!?
Shop for Back-to-School deals on Yahoo! Shopping.
http://shopping.yahoo.com/backtoschool

Re: various bugs found, see attached patch

Posted by damitha kumarage <da...@opensource.lk>.
Hi

On Fri, 2004-08-20 at 19:35, Valentine Kouznetsov wrote:
> Dear Axis developers,
> I found several bugs, design flows in Axis C++ 1.2
> code. Instead of reporting 
> a bug I'm sending you a patch which fix the following
> bugs:
> 
> 1) The code cannot handle 100 HTTP request Code
> According to HTTP 1.1 specification you may get 100
> code which means that 
> server is still not ready to give OK request and you
> need to continue

done

> 
> 2) Using HARDCODED PATH to "/usr/local/Axis/" is EVIL.
> I'm a user not a 
> sys-admin on 800 nodes in our cluster and I don't have
> privilages to write to 
> this location. The fix I applied is to introduce
> environment variable instead 
> of hardcoded path

Actually this is not hard coded. The are just default values
that the engine assumes if it cannot determine them from
the configuration file at $AXICPP_DEPLLY/etc/axiscpp.conf


> 4) Bug in AxisTransport.cpp where you reject to read
> rest of the buffer if 
> it's bigger you buffer size (which is 1024). For long
> soap messages (which I 
> doubt you tested) the XMLParser can handle to parse
> them in chunks. But 
> AxisTransport.cpp was unable to deliver correctly
> parts of long soap message.
> To fix this I applied
>  AXIS_TRANSPORT_STATUS AxisTransport::getBytes(char*
> pcBuffer, int* pSize)
>  {
> -    if (0 <= m_iBytesLeft)
> +    if (0 >= m_iBytesLeft)
> 

done

> 5) It's worthwhile to mentioned that you're using in a
> wrong way string class.
> Instead of using 
> strlen (m_PayLoad.c_str ());
> it's better (and faster) to use
> m_PayLoad.size()
> since m_PayLoad is a string.
> I found quite a lot of places where you mismatch C and
> C++.

true

regds
damitha

> 
> I appreciate your effort of developing such nice
> package and hope you will 
> consider my comments seriously and apply the patch I
> provide.
> 
> The patch was done against axis-c-src-1-2-linux code
> and can be applied as
> patch -p0 < axis.patch
> 
> (You need to stay in directory where
> axis-c-src-1-2-linux resides).
> 
> If you need further assistance don't hesitate to
> contact me.
> Sincerely,
> Valentin.
> 
> 
> 		
> _______________________________
> Do you Yahoo!?
> Win 1 of 4,000 free domain names from Yahoo! Enter now.
> http://promotions.yahoo.com/goldrush
> 
> ______________________________________________________________________
> 
> diff -Naur axis-c-src-1-2-linux/src/common/AxisConfig.cpp axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp	2004-08-18 16:35:50.246450056 +0000
> @@ -25,7 +25,8 @@
>  #include <axis/server/AxisFile.h>
>  #include "AxisUtils.h"
>  #include <stdlib.h>
> -#include <stdio.h>
> +//#include <stdio.h>
> +#include <iostream>
>  #include <string.h>
>  
>  AxisConfig::AxisConfig ()
> @@ -58,8 +59,22 @@
>      m_pcValueArray[AXCONF_NODENAME] = "server name";
>      m_pcValueArray[AXCONF_LISTENPORT] = "listen port";
>  #else
> -	m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> -	m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
> +    char* axis_xmlparser = getenv("AXIS_XMLPARSER");
> +    if(!axis_xmlparser) {
> +      std::cerr<<"No AXIS_XMLPARSER environment variable found"<<endl;
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_XMLPARSER] = axis_xmlparser;
> +    }
> +    char* axis_transport = getenv("AXIS_TRANSPORT");
> +    if(!axis_transport) {
> +       std::cerr<<"No AXIS_TRANSPORT environment variable found"<<endl; 
> +       exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_TRANSPORTHTTP] = axis_transport;
> +    }
> +//        m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
>      m_pcValueArray[AXCONF_NODENAME] = "server name";
>      m_pcValueArray[AXCONF_LISTENPORT] = "listen port";
>  #endif
> @@ -68,10 +83,38 @@
>      m_pcValueArray[AXCONF_XMLPARSER] = "AxisXMLParser.dll";
>  	m_pcValueArray[AXCONF_TRANSPORTHTTP] = "AxisTransport.dll";
>  #else
> -	m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> -	m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
> -        m_pcValueArray[AXCONF_LOGPATH] = "/usr/local/Axis/logs/AxisLog";
> -        m_pcValueArray[AXCONF_CLIENTLOGPATH] = "/usr/local/Axis/logs/AxisClientLog";
> +    char* axis_xmlparser = getenv("AXIS_XMLPARSER");
> +    if(!axis_xmlparser) {
> +      std::cerr<<"No AXIS_XMLPARSER environment variable found"<<endl;
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_XMLPARSER] = axis_xmlparser;
> +    }
> +    char* axis_transport = getenv("AXIS_TRANSPORT");
> +    if(!axis_transport) {
> +      std::cerr<<"No AXIS_TRANSPORT environment variable found"<<endl; 
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_TRANSPORTHTTP] = axis_transport;
> +    }
> +    char* axis_log = getenv("AXIS_LOG");
> +    if(!axis_transport) {
> +      std::cerr<<"No AXIS_LOG environment variable found"<<endl;
> +      exit(1); 
> +    } else {
> +      m_pcValueArray[AXCONF_LOGPATH] = axis_log;
> +    }
> +    char* axis_clientlog = getenv("AXIS_CLIENTLOGPATH");
> +    if(!axis_transport) {
> +      std::cerr<<"No AXIS_CLIENTLOGPATH environment variable found"<<endl; 
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_CLIENTLOGPATH] = axis_clientlog;
> +    }
> +//        m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
> +//        m_pcValueArray[AXCONF_LOGPATH] = "/usr/local/Axis/logs/AxisLog";
> +//        m_pcValueArray[AXCONF_CLIENTLOGPATH] = "/usr/local/Axis/logs/AxisClientLog";
>          //m_pcValueArray[AXCONF_WSDDFILEPATH] = "/usr/local/Axis/conf/server.wsdd";
>          //m_pcValueArray[AXCONF_CLIENTWSDDFILEPATH] = "/usr/local/Axis/conf/client.wsdd";
>          m_pcValueArray[AXCONF_NODENAME] = "server name";
> diff -Naur axis-c-src-1-2-linux/src/engine/DeserializerPool.cpp axis-c-src-1-2-linux-vk/src/engine/DeserializerPool.cpp
> --- axis-c-src-1-2-linux/src/engine/DeserializerPool.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/DeserializerPool.cpp	2004-08-18 16:35:50.253448992 +0000
> @@ -57,7 +57,7 @@
>              delete* ppDZ;
>              *ppDZ = NULL;
>              unlock ();
> -            AXISTRACE1 ("Deserializer could not be initialized", CRITICAL);
> +            AXISTRACE1 ("Deserializer could not be initialized", AXIS_CRITICAL);
>              return AXIS_FAIL;
>          }
>      }
> diff -Naur axis-c-src-1-2-linux/src/engine/HandlerLoader.cpp axis-c-src-1-2-linux-vk/src/engine/HandlerLoader.cpp
> --- axis-c-src-1-2-linux/src/engine/HandlerLoader.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/HandlerLoader.cpp	2004-08-18 16:35:50.257448384 +0000
> @@ -86,7 +86,7 @@
>      pHandlerInfo->m_Handler = lt_dlopen (pHandlerInfo->m_sLib.c_str ());
>      if (!pHandlerInfo->m_Handler)
>      {
> -        AXISTRACE1("SERVER_ENGINE_LIBRARY_LOADING_FAILED", CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_LIBRARY_LOADING_FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>      }
>  #elif defined(WIN32)
> @@ -97,7 +97,7 @@
>          dlopen (pHandlerInfo->m_sLib.c_str (), pHandlerInfo->m_nLoadOptions);
>      if (!pHandlerInfo->m_Handler)
>      {
> -        AXISTRACE1("DLOPEN FAILED", CRITICAL);
> +        AXISTRACE1("DLOPEN FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>          //printf ("DLOPEN FAILED: %s\n", dlerror ());
>          //exit (1);
> @@ -132,7 +132,7 @@
>          {
>              delete pHandlerInfo;
>              unlock ();
> -            AXISTRACE1("SERVER_CONFIG_LIBRARY_PATH_EMPTY", CRITICAL);
> +            AXISTRACE1("SERVER_CONFIG_LIBRARY_PATH_EMPTY", AXIS_CRITICAL);
>              THROW_AXIS_CONFIG_EXCEPTION(SERVER_CONFIG_LIBRARY_PATH_EMPTY);
>              //return SERVER_CONFIG_LIBRARYPATHEMPTY;
>          }
> @@ -167,7 +167,7 @@
>                  unloadLib (pHandlerInfo);
>                  delete pHandlerInfo;
>                  unlock ();
> -                AXISTRACE1 ("Library loading failed", CRITICAL);
> +                AXISTRACE1 ("Library loading failed", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>                  //return SERVER_ENGINE_LIBRARYLOADINGFAILED;
>              }
> @@ -179,7 +179,7 @@
>          else
>          {
>              unlock ();
> -            AXISTRACE1 ("Library loading failed", CRITICAL);
> +            AXISTRACE1 ("Library loading failed", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>              //return SERVER_ENGINE_LIBRARYLOADINGFAILED;
>          }
> @@ -205,14 +205,14 @@
>                  pBH->_functions->fini (pBH->_object);
>                  pHandlerInfo->m_Delete (pBH);
>                  unlock ();
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_INIT_FAILED);
>                  //return SERVER_ENGINE_HANDLERINITFAILED;
>              }
>          }
>          else if (0 == pBH->_object)
>          {
> -            AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", CRITICAL);
> +            AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_CREATION_FAILED);
>              //return SERVER_ENGINE_HANDLERCREATIONFAILED;
>          }
> @@ -231,7 +231,7 @@
>                  ((HandlerBase*) pBH->_object)->fini ();
>                  pHandlerInfo->m_Delete (pBH);
>                  unlock ();
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_INIT_FAILED);
>                  //return SERVER_ENGINE_HANDLERINITFAILED;
>              }
> @@ -240,7 +240,7 @@
>      else
>      {
>          unlock ();
> -        AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_CREATION_FAILED);
>          //return SERVER_ENGINE_HANDLERCREATIONFAILED;
>      }
> diff -Naur axis-c-src-1-2-linux/src/engine/SOAPTransportFactory.cpp axis-c-src-1-2-linux-vk/src/engine/SOAPTransportFactory.cpp
> --- axis-c-src-1-2-linux/src/engine/SOAPTransportFactory.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/SOAPTransportFactory.cpp	2004-08-18 16:35:50.269446560 +0000
> @@ -65,7 +65,7 @@
>          if (!m_Create || !m_Delete)
>          {
>              unloadLib();
> -                        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
> +                        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", AXIS_CRITICAL);
>                          THROW_AXIS_ENGINE_EXCEPTION2(SERVER_ENGINE_LOADING_TRANSPORT_FAILED,  strdup(m_pcLibraryPath));
>  			//throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, strdup(m_pcLibraryPath));
>          }
> @@ -76,7 +76,7 @@
>  	}
>  	else
>  	{
> -                AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION2(SERVER_ENGINE_LOADING_TRANSPORT_FAILED,  strdup(m_pcLibraryPath));
>  		//throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, strdup(m_pcLibraryPath));
>  	}
> @@ -109,7 +109,7 @@
>      m_LibHandler = lt_dlopen(m_pcLibraryPath);
>      if (!m_LibHandler)
>      {
> -        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LOADING_TRANSPORT_FAILED);
>          //printf("DLOPEN FAILED in loading transport library: %s\n", lt_dlerror ());
>      }
> @@ -119,7 +119,8 @@
>      m_LibHandler = dlopen(m_pcLibraryPath, RTLD_LAZY);
>      if (!m_LibHandler)
>      {
> -        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", AXIS_CRITICAL);
> +	printf("DLOPEN FAILED in loading transport library: %s\n", dlerror());
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LOADING_TRANSPORT_FAILED);
>          //printf("DLOPEN FAILED in loading transport library: %s\n", dlerror());
>      }
> diff -Naur axis-c-src-1-2-linux/src/engine/SerializerPool.cpp axis-c-src-1-2-linux-vk/src/engine/SerializerPool.cpp
> --- axis-c-src-1-2-linux/src/engine/SerializerPool.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/SerializerPool.cpp	2004-08-18 16:35:50.262447624 +0000
> @@ -60,7 +60,7 @@
>          delete *ppSZ;
>          *ppSZ = NULL;
>          unlock ();
> -        AXISTRACE1 ("Serializer pool could not be initialized", CRITICAL);
> +        AXISTRACE1 ("Serializer pool could not be initialized", AXIS_CRITICAL);
>          return AXIS_FAIL;
>      }
>      unlock ();
> diff -Naur axis-c-src-1-2-linux/src/engine/XMLParserFactory.cpp axis-c-src-1-2-linux-vk/src/engine/XMLParserFactory.cpp
> --- axis-c-src-1-2-linux/src/engine/XMLParserFactory.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/XMLParserFactory.cpp	2004-08-18 16:35:50.272446104 +0000
> @@ -66,7 +66,7 @@
>          if (!m_Create || !m_Delete)
>          {
>              unloadLib();
> -                        AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , CRITICAL);
> +                        AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , AXIS_CRITICAL);
>                          THROW_AXIS_ENGINE_EXCEPTION2(SERVER_ENGINE_LOADING_PARSER_FAILED, strdup(m_pcLibraryPath));
>  			//throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, strdup(m_pcLibraryPath));
>          }
> @@ -77,7 +77,7 @@
>  	}
>  	else
>  	{
> -                AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION2(SERVER_ENGINE_LOADING_PARSER_FAILED, strdup(m_pcLibraryPath));
>  		//throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, strdup(m_pcLibraryPath));
>  	}
> @@ -110,7 +110,7 @@
>      m_LibHandler = lt_dlopen(m_pcLibraryPath);
>      if (!m_LibHandler)
>      {
> -        AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LOADING_PARSER_FAILED);
>          //printf("DLOPEN FAILED in loading parser library: %s\n", lt_dlerror ());
>      }
> @@ -120,7 +120,8 @@
>      m_LibHandler = dlopen(m_pcLibraryPath, RTLD_LAZY);
>      if (!m_LibHandler)
>      {
> -        AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_LOADING_PARSER_FAILED" , AXIS_CRITICAL);
> +	printf("DLOPEN FAILED in loading parser library: %s %s\n", dlerror(),m_pcLibraryPath);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LOADING_PARSER_FAILED);
>          //printf("DLOPEN FAILED in loading parser library: %s\n", dlerror());
>      }
> diff -Naur axis-c-src-1-2-linux/src/engine/client/ClientAxisEngine.cpp axis-c-src-1-2-linux-vk/src/engine/client/ClientAxisEngine.cpp
> --- axis-c-src-1-2-linux/src/engine/client/ClientAxisEngine.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/client/ClientAxisEngine.cpp	2004-08-18 16:35:50.250449448 +0000
> @@ -14,7 +14,6 @@
>   *   See the License for the specific language governing permissions and
>   *   limitations under the License.
>   */
> -
>  #include "ClientAxisEngine.h"
>  #include "../../wsdd/WSDDDeployment.h"
>  #include "../HandlerPool.h"
> @@ -49,7 +48,7 @@
>      AXISC_TRY
>      if (!pSoap)
>      {
> -        AXISTRACE1 ("Transport is null", CRITICAL);
> +        AXISTRACE1 ("Transport is null", AXIS_CRITICAL);
>          return AXIS_FAIL;
>      }
>      m_pSoap = pSoap;
> diff -Naur axis-c-src-1-2-linux/src/engine/server/ServerAxisEngine.cpp axis-c-src-1-2-linux-vk/src/engine/server/ServerAxisEngine.cpp
> --- axis-c-src-1-2-linux/src/engine/server/ServerAxisEngine.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/server/ServerAxisEngine.cpp	2004-08-18 16:35:50.265447168 +0000
> @@ -48,7 +48,7 @@
>      AXISC_TRY
>      if (!pStream)
>      {
> -        AXISTRACE1 ("transport is not set properly", CRITICAL);
> +        AXISTRACE1 ("transport is not set properly", AXIS_CRITICAL);
>          THROW_AXIS_CONFIG_EXCEPTION(SERVER_CONFIG_TRANSPORT_CONF_FAILED);
>      }
>       string sSessionId = pStream->getSessionId();
> @@ -68,7 +68,7 @@
>              nSoapVersion = 
>                  (nSoapVersion == VERSION_LAST) ? SOAP_VER_1_2 : nSoapVersion;
>              m_pSZ->setSoapVersion ((SOAP_VERSION) nSoapVersion);
> -            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", CRITICAL);
> +            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_SOAP_CONTENT_ERROR);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_SOAP_SOAPCONTENTERROR));
>              break; // do .. while(0)
> @@ -77,7 +77,7 @@
>          const char* cService = pStream->getTransportProperty(SERVICE_URI);
>          if (!cService)
>          {
> -            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", CRITICAL);
> +            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_SOAP_CONTENT_ERROR);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_SOAP_SOAPCONTENTERROR));
>              break; // do .. while(0)
> @@ -90,7 +90,7 @@
>              nSoapVersion =
>                  (nSoapVersion == VERSION_LAST) ? SOAP_VER_1_2 : nSoapVersion;
>              m_pSZ->setSoapVersion ((SOAP_VERSION) nSoapVersion);
> -            AXISTRACE1("CLIENT_SOAP_SOAP_ACTION_EMTPY", CRITICAL);
> +            AXISTRACE1("CLIENT_SOAP_SOAP_ACTION_EMTPY", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_SOAP_ACTION_EMTPY);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_SOAP_SOAPACTIONEMTPY));
>              break; // do .. while(0)
> @@ -109,7 +109,7 @@
>              nSoapVersion =
>                  (nSoapVersion == VERSION_LAST) ? SOAP_VER_1_2 : nSoapVersion;
>              m_pSZ->setSoapVersion ((SOAP_VERSION) nSoapVersion);
> -            AXISTRACE1("CLIENT_WSDD_SERVICE_NOT_FOUND", CRITICAL);
> +            AXISTRACE1("CLIENT_WSDD_SERVICE_NOT_FOUND", AXIS_CRITICAL);
>              THROW_AXIS_WSDD_EXCEPTION(CLIENT_WSDD_SERVICE_NOT_FOUND);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_WSDD_SERVICENOTFOUND));
>              break; // do .. while(0)
> @@ -146,7 +146,7 @@
>          nSoapVersion = m_pDZ->getVersion ();
>          if (m_pDZ->getStatus () != AXIS_SUCCESS)
>          {
> -            AXISTRACE1("CLIENT_SOAP_MESSAGE_INCOMPLETE", CRITICAL);
> +            AXISTRACE1("CLIENT_SOAP_MESSAGE_INCOMPLETE", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_MESSAGE_INCOMPLETE);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault(CLIENT_SOAP_MESSAGEINCOMPLETE));
>              break; // do .. while(0)
> @@ -155,7 +155,7 @@
>          if (nSoapVersion == VERSION_LAST)     /* version not supported */
>          {
>              m_pSZ->setSoapVersion (SOAP_VER_1_2);
> -            AXISTRACE1("SOAP_VERSION_MISMATCH", CRITICAL);
> +            AXISTRACE1("SOAP_VERSION_MISMATCH", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(SOAP_VERSION_MISMATCH);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (SOAP_VERSIONMISMATCH));
>              break; // do .. while(0)         
> @@ -164,7 +164,7 @@
>          /* Set Soap version in the Serializer and the envelope */
>          if (AXIS_SUCCESS != m_pSZ->setSoapVersion ((SOAP_VERSION) nSoapVersion))
>          {
> -            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", CRITICAL);
> +            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_SOAP_CONTENT_ERROR);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_SOAP_SOAPCONTENTERROR));
>              break; // do .. while(0)
> @@ -176,7 +176,7 @@
>          AxisString sOperation = pStream->getTransportProperty(OPERATION_NAME);
>          if (sOperation.empty ())
>          {
> -            AXISTRACE1("CLIENT_SOAP_NO_SOAP_METHOD", CRITICAL);
> +            AXISTRACE1("CLIENT_SOAP_NO_SOAP_METHOD", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_NO_SOAP_METHOD);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_SOAP_NOSOAPMETHOD));
>              break; // do .. while(0)
> @@ -196,7 +196,7 @@
>                  sSessionId, m_pService))
>              {
>                  /* error : couldnot load web service */
> -                AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_SRV", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_SRV", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_COULD_NOT_LOAD_SRV);
>                  //m_pSZ->
>                  //    setSoapFault(SoapFault::getSoapFault(SERVER_ENGINE_COULDNOTLOADSRV));
> @@ -221,7 +221,7 @@
>              
>  	    if (m_pSZ->getStyle () != nBindingStyle)
>              {
> -                AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", CRITICAL);
> +                AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", AXIS_CRITICAL);
>                  THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_SOAP_CONTENT_ERROR);
>                  //m_pSZ->
>                  //    setSoapFault(SoapFault::getSoapFault(CLIENT_SOAP_SOAPCONTENTERROR));
> @@ -230,7 +230,7 @@
>          }
>          else
>          {
> -            AXISTRACE1("CLIENT_WSDD_METHOD_NOT_ALLOWED", CRITICAL);
> +            AXISTRACE1("CLIENT_WSDD_METHOD_NOT_ALLOWED", AXIS_CRITICAL);
>              THROW_AXIS_WSDD_EXCEPTION(CLIENT_WSDD_METHOD_NOT_ALLOWED);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_WSDD_METHODNOTALLOWED));
>              // Method is not an exposed allowed method
> @@ -241,7 +241,7 @@
>          if (AXIS_SUCCESS != (Status = initializeHandlers (sSessionId, 
>              pStream->getProtocol())))
>          {
> -            AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_HDL", CRITICAL);
> +            AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_HDL", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_COULD_NOT_LOAD_HDL);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (SERVER_ENGINE_COULDNOTLOADHDL));
>              break; // do .. while(0)
> @@ -250,7 +250,7 @@
>          if (AXIS_SUCCESS != (Status = g_pHandlerPool->getRequestFlowHandlerChain
>              (&m_pSReqFChain, sSessionId, m_pService)))
>          {
> -            AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_HDL", CRITICAL);
> +            AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_HDL", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_COULD_NOT_LOAD_HDL);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (SERVER_ENGINE_COULDNOTLOADHDL));
>              break; // do .. while(0)
> @@ -260,7 +260,7 @@
>              g_pHandlerPool->getResponseFlowHandlerChain (&m_pSResFChain, 
>              sSessionId, m_pService)))
>          {
> -            AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_HDL", CRITICAL);
> +            AXISTRACE1("SERVER_ENGINE_COULD_NOT_LOAD_HDL", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_COULD_NOT_LOAD_HDL);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (SERVER_ENGINE_COULDNOTLOADHDL));
>              break; // do .. while(0)
> @@ -275,7 +275,7 @@
>  	 */
>          if (AXIS_SUCCESS != m_pDZ->getHeader ())
>          {
> -            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", CRITICAL);
> +            AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(CLIENT_SOAP_SOAP_CONTENT_ERROR);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (CLIENT_SOAP_SOAPCONTENTERROR));
>              break; // do .. while(0)                         
> @@ -289,7 +289,7 @@
>  
>      if (AXIS_SUCCESS != m_pDZ->flushInputStream ())
>      {
> -        AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", CRITICAL);
> +        AXISTRACE1 ("CLIENT_SOAP_SOAP_CONTENT_ERROR", AXIS_CRITICAL);
>      }
>      /*
>       * Get any header blocks unprocessed (left) in the Deserializer and add them
> @@ -327,7 +327,7 @@
>  #ifdef ENABLE_AXIS_EXCEPTION
>          int iExceptionCode = e.getExceptionCode();
>          char* pcTempStr = (char*) e.what();
> -        AXISTRACE2("Exception:", pcTempStr, CRITICAL);
> +        AXISTRACE2("Exception:", pcTempStr, AXIS_CRITICAL);
>          if(AXISC_SERVICE_THROWN_EXCEPTION == iExceptionCode)
>          {
>              /*Writes the SoapMessage in which soap body contains only Fault*/
> @@ -368,7 +368,7 @@
>          {
>              if (AXIS_SUCCESS != (Status = m_pTReqFChain->invoke (pMsg)))
>              {
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_FAILED);
>                  //m_pSZ->setSoapFault (SoapFault::getSoapFault(SERVER_ENGINE_HANDLERFAILED));
>                  break; // do .. while (0)
> @@ -381,7 +381,7 @@
>          {
>              if (AXIS_SUCCESS != (Status = m_pGReqFChain->invoke (pMsg)))
>              {
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_FAILED);
>                  //m_pSZ->setSoapFault (SoapFault::getSoapFault(SERVER_ENGINE_HANDLERFAILED));
>                  break; // do .. while (0)
> @@ -393,7 +393,7 @@
>          {
>              if (AXIS_SUCCESS != (Status = m_pSReqFChain->invoke (pMsg)))
>              {
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_FAILED);
>                  //m_pSZ->setSoapFault (SoapFault::getSoapFault(SERVER_ENGINE_HANDLERFAILED));
>                  break; // do .. while (0)
> @@ -407,7 +407,7 @@
>  	 */
>          if (m_pDZ->isAnyMustUnderstandHeadersLeft ())
>          {
> -            AXISTRACE1("SOAP_MUSTUNDERSTAND", CRITICAL);
> +            AXISTRACE1("SOAP_MUSTUNDERSTAND", AXIS_CRITICAL);
>              THROW_AXIS_SOAP_EXCEPTION(SOAP_MUST_UNDERSTAND);
>              //m_pSZ->setSoapFault (SoapFault::getSoapFault (SOAP_MUSTUNDERSTAND));
>              break; // do .. while (0)
> @@ -433,7 +433,7 @@
>                  Status = AXIS_FAIL;
>              if (AXIS_SUCCESS != Status)
>              {
> -                AXISTRACE1("SERVER_ENGINE_WEBSERVICEFAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_WEBSERVICEFAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_WEBSERVICE_FAILED);
>                  //m_pSZ->
>                  //    setSoapFault(SoapFault::getSoapFault(SERVER_ENGINE_WEBSERVICEFAILED));
> diff -Naur axis-c-src-1-2-linux/src/soap/SoapDeSerializer.cpp axis-c-src-1-2-linux-vk/src/soap/SoapDeSerializer.cpp
> --- axis-c-src-1-2-linux/src/soap/SoapDeSerializer.cpp	2004-07-09 13:34:57.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/soap/SoapDeSerializer.cpp	2004-08-18 16:35:50.277445344 +0000
> @@ -32,6 +32,7 @@
>  #ifdef WIN32
>  #pragma warning (disable : 4101)
>  #endif
> +#include <iostream>
>  
>  #include <axis/server/SoapDeSerializer.h>
>  #include "SoapEnvelope.h"
> @@ -118,7 +119,7 @@
>          }
>          else
>          {
> -            m_nSoapVersion = VERSION_LAST;
> +	    m_nSoapVersion = VERSION_LAST;
>          }
>  
>          /* Set Attributes */
> @@ -322,7 +323,7 @@
>  	 * is not so nice. I'll rectify this asap
>  	 */
>  	setStyle(DOC_LITERAL);
> -        AXISTRACE1("AXISC_NODE_VALUE_MISMATCH_EXCEPTION", CRITICAL);
> +        AXISTRACE1("AXISC_NODE_VALUE_MISMATCH_EXCEPTION", AXIS_CRITICAL);
>          throw AxisGenException(AXISC_NODE_VALUE_MISMATCH_EXCEPTION);    
>      }
>      /* we can check the namespace uri too here. Should we ?*/
> @@ -341,7 +342,7 @@
>          {
>              m_nStatus = AXIS_SUCCESS;
>              m_pNode = NULL;
> -            AXISTRACE1("AXISC_NODE_VALUE_MISMATCH_EXCEPTION", CRITICAL);
> +            AXISTRACE1("AXISC_NODE_VALUE_MISMATCH_EXCEPTION", AXIS_CRITICAL);
>              THROW_AXIS_EXCEPTION(AXISC_NODE_VALUE_MISMATCH_EXCEPTION);
>          }
>          /* we can check the namespace uri too here. Should we ?*/
> diff -Naur axis-c-src-1-2-linux/src/transport/axis/AxisTransport.cpp axis-c-src-1-2-linux-vk/src/transport/axis/AxisTransport.cpp
> --- axis-c-src-1-2-linux/src/transport/axis/AxisTransport.cpp	2004-07-09 13:36:07.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/transport/axis/AxisTransport.cpp	2004-08-18 16:35:50.281444736 +0000
> @@ -35,7 +35,7 @@
>   * Revision 1.3  2004/06/08 samisa
>   * Added setTimeout
>   */
> -
> +#include <iostream>
>  #ifdef WIN32
>  #pragma warning (disable : 4786)
>  #pragma warning (disable : 4101)
> @@ -209,6 +209,7 @@
>  AXIS_TRANSPORT_STATUS AxisTransport::sendBytes(const char* pcSendBuffer, 
>                                                  const void* pBufferId)
>  {
> +
>      for (int index=0;index < NO_OF_SERIALIZE_BUFFERS; index++)
>      {
>          if(!m_SendBuffers[index].pcBuffer)
> @@ -234,7 +235,7 @@
>  
>  AXIS_TRANSPORT_STATUS AxisTransport::getBytes(char* pcBuffer, int* pSize)
>  {
> -    if (0 <= m_iBytesLeft)
> +    if (0 >= m_iBytesLeft)
>      {
>          try
>          {
> @@ -259,10 +260,10 @@
>      }
>      if (m_pcReceived)
>      {
> -		int iToCopy = (*pSize < m_iBytesLeft) ? *pSize : m_iBytesLeft;
> +	int iToCopy = (*pSize < m_iBytesLeft) ? *pSize : m_iBytesLeft;
>          strncpy(pcBuffer, m_pcReceived, iToCopy);
> -		m_iBytesLeft -= iToCopy;
> -		m_pcReceived += iToCopy;
> +	m_iBytesLeft -= iToCopy;
> +	m_pcReceived += iToCopy;
>          *pSize = iToCopy;
>          return TRANSPORT_IN_PROGRESS;
>      }
> diff -Naur axis-c-src-1-2-linux/src/transport/axis/Channel.cpp axis-c-src-1-2-linux-vk/src/transport/axis/Channel.cpp
> --- axis-c-src-1-2-linux/src/transport/axis/Channel.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/transport/axis/Channel.cpp	2004-08-18 16:35:50.285444128 +0000
> @@ -325,6 +325,7 @@
>      else
>  	Error( "Channel::readNonBlocking: execution break");
>  
> +
>      return *this;
>  }
>  
> diff -Naur axis-c-src-1-2-linux/src/transport/axis/HttpTransport.cpp axis-c-src-1-2-linux-vk/src/transport/axis/HttpTransport.cpp
> --- axis-c-src-1-2-linux/src/transport/axis/HttpTransport.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/transport/axis/HttpTransport.cpp	2004-08-18 16:35:50.288443672 +0000
> @@ -45,7 +45,7 @@
>   *  HTTP Header.
>   */
>  
> -
> +#include <iostream>
>  #ifdef WIN32
>  #pragma warning (disable : 4101)
>  #endif
> @@ -69,6 +69,7 @@
>      m_IsHttpHeader = 0;
>      m_HttpBindDone = false;
>      m_Secure = secure;
> +    m_mustReadAgainHTTP = false;
>  
>      if (SECURE == secure)
>      {
> @@ -93,6 +94,7 @@
>      m_strUrl = strUrl;
>      m_IsHttpHeader = 0;
>      m_HttpBindDone = false;
> +    m_mustReadAgainHTTP = false;
>  
>      if (secure)
>      {
> @@ -131,6 +133,7 @@
>      try
>      {
>  	m_bStatus = true;
> +	m_mustReadAgainHTTP = false;
>  	std::string host = m_Url.GetHostName();
>          unsigned int port = m_Url.GetPort();
>          if(m_bUseProxy)
> @@ -212,22 +215,24 @@
>      std::string tmpPacket;	/* use temporary, need to workout for this */
>      try
>      {
> -    if (!m_bStatus)
> -    {
> -	/* We have the payload; this is due to Fault request made in */
> -	/* earlier call to this method */
> -	*pPayLoad = m_PayLoad.c_str ();
> -	
> -	return *this;
> -    }
> +	if (!m_bStatus)
> +	{
> +	    /* We have the payload; this is due to Fault request made in */
> +	    /* earlier call to this method */
> +	    *pPayLoad = m_PayLoad.c_str ();
> +	    
> +	    return *this;
> +	}
>          /* Http header is processed and validated. We now receive the payload */
>          /* from the channel */
>          if (m_IsHttpHeader == 1)
>          {
>  	    *m_Channel >> m_PayLoad;
>  	    *pPayLoad = m_PayLoad.c_str ();
> +		    
>  	    return *this;
>          }
> +	
>          do
>          { /* process will step into this only if http validation is not done. 
>             * That is, until the stream contain the httpd header.
> @@ -260,7 +265,7 @@
>              while (tmpCompletePacket.length ());
>  
>  #ifdef _DEBUG
> -        std::cout << "\n\n\nGot the message:\r\n\r\n" << tmpPacket << "\n\n";
> +        std::cout << "\n\n\nGot the message:\n\"\"\"" << tmpPacket << "\"\"\"\n\n";
>  #endif
>              /* Validate the HTTP packet */
>              if (m_IsHttpHeader == 1)
> @@ -269,11 +274,22 @@
>               */
>              {
>                  /* printf("while,m_IsHttpHeader == 1\n"); */
> -                *pPayLoad = tmpPacket.c_str ();
> +//                *pPayLoad = tmpPacket.c_str ();
> +                m_PayLoad = tmpPacket;
> +		*pPayLoad = m_PayLoad.c_str();
>                  break;
> -            }
> -            if (m_bStatus)
> -            HTTPValidate (tmpPacket);	/* Validate the header */
> +            } else {
> +               HTTPValidate (tmpPacket);	/* Validate the header */
> +	       // HTTP found HTTP 100 code which means we need to try again
> +	       if(m_mustReadAgainHTTP) {
> +		  m_mustReadAgainHTTP = false;
> +		  m_IsHttpHeader=0;
> +		  m_sHeader="";
> +		  continue;
> +	       }
> +	       
> +	    }
> +	    
>              int j = strlen (tmpPacket.c_str ());
>              if (j == 0)
>              break;
> @@ -656,6 +672,9 @@
>  	/* Status code is 2xx; so valid packet. hence go ahead and extract
>  	 * the payload. 
>  	 */
> +	if (nHttpStatus == 1) {
> +	   m_mustReadAgainHTTP = true;
> +	}
>  	if (nHttpStatus == 2)
>  	{
>  	    GetPayLoad (m_sHeader, offset);
> @@ -758,7 +777,7 @@
>                  (pos + strlen("Content-Type: ") + 5, 3).c_str ();
>              if("xml" != strContentType)
>              {
> -                AXISTRACE1("SERVER_TRANSPORT_PROCESS_EXCEPTION:content type is not xml", INFO);
> +                AXISTRACE1("SERVER_TRANSPORT_PROCESS_EXCEPTION:content type is not xml", AXIS_INFO);
>                  char* pcMessage = new char[256 * sizeof(char)];
>                  strcpy(pcMessage, "Content type is not xml");
>  	        THROW_AXIS_TRANSPORT_EXCEPTION2(SERVER_TRANSPORT_PROCESS_EXCEPTION, pcMessage);
> diff -Naur axis-c-src-1-2-linux/src/transport/axis/HttpTransport.hpp axis-c-src-1-2-linux-vk/src/transport/axis/HttpTransport.hpp
> --- axis-c-src-1-2-linux/src/transport/axis/HttpTransport.hpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/transport/axis/HttpTransport.hpp	2004-08-18 16:35:50.292443064 +0000
> @@ -180,6 +180,10 @@
>      */
>      long m_lTimeoutSeconds;
>  
> +
> +    // Keep track of 100 HTTP code
> +    bool m_mustReadAgainHTTP;
> +
>  };
>  
>  #endif
> diff -Naur axis-c-src-1-2-linux/src/transport/axis/Receiver.cpp axis-c-src-1-2-linux-vk/src/transport/axis/Receiver.cpp
> --- axis-c-src-1-2-linux/src/transport/axis/Receiver.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/transport/axis/Receiver.cpp	2004-08-18 16:35:50.295442608 +0000
> @@ -41,8 +41,8 @@
>      {
>        isHttpHeader = m_pTrChannel->getIsHttpHeader();
>        bodyLength = m_pTrChannel->getBodyLength();
> -      /* printf("bodyLength:%d\n", bodyLength); */
> -      /* printf("isHttpHeader:%d\n", isHttpHeader); */
> +//      printf("bodyLength:%d\n", bodyLength);
> +//      printf("isHttpHeader:%d\n", isHttpHeader);
>        if(isHttpHeader == 1 && bodyLength == 0)
>              return NULL;
>      if (0 == m_BytesRead)
> @@ -66,7 +66,7 @@
>  	//}
>          //catch(...)
>          //{
> -          //  AXISTRACE1("SERVER_TRANSPORT_RECEPTION_EXCEPTION", CRITICAL);
> +          //  AXISTRACE1("SERVER_TRANSPORT_RECEPTION_EXCEPTION", AXIS_CRITICAL);
>            //  throw AxisTransportException(SERVER_TRANSPORT_RECEPTION_EXCEPTION);
>  	//}
>      }
> @@ -75,8 +75,8 @@
>      {
>          bodyLength = m_pTrChannel->getBodyLength();
>  #ifdef _DEBUG
> -        //printf("m_MsgSize:%d\n", m_MsgSize);
> -        //printf("bodyLength:%d\n", bodyLength);
> +//        printf("m_MsgSize:%d\n", m_MsgSize);
> +//        printf("bodyLength:%d\n", bodyLength);
>  #endif
>          bodyLength -= m_MsgSize;
>          m_pTrChannel->setBodyLength(bodyLength);    
> diff -Naur axis-c-src-1-2-linux/src/wsdd/WSDDDocument.cpp axis-c-src-1-2-linux-vk/src/wsdd/WSDDDocument.cpp
> --- axis-c-src-1-2-linux/src/wsdd/WSDDDocument.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/wsdd/WSDDDocument.cpp	2004-08-18 16:35:50.299442000 +0000
> @@ -58,7 +58,7 @@
>      /* this enables the access to Deployment object while parsing */
>      if (AXIS_SUCCESS != parseDocument(pcWSDDFileName))
>      {
> -        AXISTRACE1("Deployment descripter loading failed", CRITICAL);
> +        AXISTRACE1("Deployment descripter loading failed", AXIS_CRITICAL);
>          return AXIS_FAIL;
>      }
>      return AXIS_SUCCESS;
> diff -Naur axis-c-src-1-2-linux/src/xml/expat/XMLParserExpat.cpp axis-c-src-1-2-linux-vk/src/xml/expat/XMLParserExpat.cpp
> --- axis-c-src-1-2-linux/src/xml/expat/XMLParserExpat.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/xml/expat/XMLParserExpat.cpp	2004-08-18 16:35:50.303441392 +0000
> @@ -231,7 +231,7 @@
>                          m_pLastEvent = NULL;
>                          break;
>                      }
> -                    return &m_Element;
> +		    return &m_Element;
>                  case START_PREFIX:
>  					if (!(m_pLastEvent->m_NameOrValue.empty()))
>  						m_NsStack[m_pLastEvent->m_NameOrValue] =
> @@ -275,10 +275,10 @@
>      m_pCurrentBuffer = (char*) XML_GetBuffer(m_Parser, EXPAT_BUFFER_SIZE);
>      if (m_pCurrentBuffer)
>      {
> -        iTransportStatus = m_pInputStream->getBytes(m_pCurrentBuffer, &nChars);
> +	iTransportStatus = m_pInputStream->getBytes(m_pCurrentBuffer, &nChars);
>          if (nChars > 0)
>          {
> -            if (XML_STATUS_ERROR == XML_ParseBuffer(m_Parser, nChars, false))
> +	    if (XML_STATUS_ERROR == XML_ParseBuffer(m_Parser, nChars, false))
>                  m_nStatus = AXIS_FAIL;
>          }
>          if (TRANSPORT_FAILED == iTransportStatus) XML_ParseBuffer(m_Parser, 0, true);


FYI: Problems connecting to Internet

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Hi All,

     One of the backbone links to Sri Lanka of one of the leading ISPs is down at the moment. Unfortunately most of the Axis C++ commiters are getting their Internet connection from this perticular provider. It will take few days before the problem is fixed. 

Thanks,

Samisa...


		
---------------------------------
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.

Re: various bugs found, see attached patch

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Hi Valentine,
    Thank you very much for your valuble contributions. All suggestions you have made are very
valid and usefull.
    Unfortunately the code hace changed a bit from 1.2 to 1.3 Alpha. Hence it will take me some
time before these patches are applied to the latest CVS head, beacuse there needs to be some sync
up. (I will try to apply these asap) In the mean time, please try the latest CVS code. 
Thanks,
Samisa...

--- Valentine Kouznetsov <vk...@yahoo.com> wrote:

> Dear Axis developers,
> I found several bugs, design flows in Axis C++ 1.2
> code. Instead of reporting 
> a bug I'm sending you a patch which fix the following
> bugs:
> 
> 1) The code cannot handle 100 HTTP request Code
> According to HTTP 1.1 specification you may get 100
> code which means that 
> server is still not ready to give OK request and you
> need to continue
> 
> 2) Using HARDCODED PATH to "/usr/local/Axis/" is EVIL.
> I'm a user not a 
> sys-admin on 800 nodes in our cluster and I don't have
> privilages to write to 
> this location. The fix I applied is to introduce
> environment variable instead 
> of hardcoded path
> 
> 3) Using enum (CRITICAL and other) without namespace
> MAY lead that your code 
> can overlap with code on client legacy application and
> conflict with it. I 
> changed CRITICAL, etc. to AXIS_CRITICAL. It's not the
> best way to do (better 
> would be use namespace), but it's unlikely to overlap
> with our code.
> 
> 4) Bug in AxisTransport.cpp where you reject to read
> rest of the buffer if 
> it's bigger you buffer size (which is 1024). For long
> soap messages (which I 
> doubt you tested) the XMLParser can handle to parse
> them in chunks. But 
> AxisTransport.cpp was unable to deliver correctly
> parts of long soap message.
> To fix this I applied
>  AXIS_TRANSPORT_STATUS AxisTransport::getBytes(char*
> pcBuffer, int* pSize)
>  {
> -    if (0 <= m_iBytesLeft)
> +    if (0 >= m_iBytesLeft)
> 
> 5) It's worthwhile to mentioned that you're using in a
> wrong way string class.
> Instead of using 
> strlen (m_PayLoad.c_str ());
> it's better (and faster) to use
> m_PayLoad.size()
> since m_PayLoad is a string.
> I found quite a lot of places where you mismatch C and
> C++.
> 
> I appreciate your effort of developing such nice
> package and hope you will 
> consider my comments seriously and apply the patch I
> provide.
> 
> The patch was done against axis-c-src-1-2-linux code
> and can be applied as
> patch -p0 < axis.patch
> 
> (You need to stay in directory where
> axis-c-src-1-2-linux resides).
> 
> If you need further assistance don't hesitate to
> contact me.
> Sincerely,
> Valentin.
> 
> 
> 		
> _______________________________
> Do you Yahoo!?
> Win 1 of 4,000 free domain names from Yahoo! Enter now.
> http://promotions.yahoo.com/goldrush> diff -Naur axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp	2004-08-18 16:35:50.246450056 +0000
> @@ -25,7 +25,8 @@
>  #include <axis/server/AxisFile.h>
>  #include "AxisUtils.h"
>  #include <stdlib.h>
> -#include <stdio.h>
> +//#include <stdio.h>
> +#include <iostream>
>  #include <string.h>
>  
>  AxisConfig::AxisConfig ()
> @@ -58,8 +59,22 @@
>      m_pcValueArray[AXCONF_NODENAME] = "server name";
>      m_pcValueArray[AXCONF_LISTENPORT] = "listen port";
>  #else
> -	m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> -	m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
> +    char* axis_xmlparser = getenv("AXIS_XMLPARSER");
> +    if(!axis_xmlparser) {
> +      std::cerr<<"No AXIS_XMLPARSER environment variable found"<<endl;
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_XMLPARSER] = axis_xmlparser;
> +    }
> +    char* axis_transport = getenv("AXIS_TRANSPORT");
> +    if(!axis_transport) {
> +       std::cerr<<"No AXIS_TRANSPORT environment variable found"<<endl; 
> +       exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_TRANSPORTHTTP] = axis_transport;
> +    }
> +//        m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
>      m_pcValueArray[AXCONF_NODENAME] = "server name";
>      m_pcValueArray[AXCONF_LISTENPORT] = "listen port";
>  #endif
> @@ -68,10 +83,38 @@
>      m_pcValueArray[AXCONF_XMLPARSER] = "AxisXMLParser.dll";
>  	m_pcValueArray[AXCONF_TRANSPORTHTTP] = "AxisTransport.dll";
>  #else
> -	m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> -	m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
> -        m_pcValueArray[AXCONF_LOGPATH] = "/usr/local/Axis/logs/AxisLog";
> -        m_pcValueArray[AXCONF_CLIENTLOGPATH] = "/usr/local/Axis/logs/AxisClientLog";
> +    char* axis_xmlparser = getenv("AXIS_XMLPARSER");
> +    if(!axis_xmlparser) {
> +      std::cerr<<"No AXIS_XMLPARSER environment variable found"<<endl;
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_XMLPARSER] = axis_xmlparser;
> +    }
> +    char* axis_transport = getenv("AXIS_TRANSPORT");
> +    if(!axis_transport) {
> +      std::cerr<<"No AXIS_TRANSPORT environment variable found"<<endl; 
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_TRANSPORTHTTP] = axis_transport;
> +    }
> +    char* axis_log = getenv("AXIS_LOG");
> +    if(!axis_transport) {
> +      std::cerr<<"No AXIS_LOG environment variable found"<<endl;
> +      exit(1); 
> +    } else {
> +      m_pcValueArray[AXCONF_LOGPATH] = axis_log;
> +    }
> +    char* axis_clientlog = getenv("AXIS_CLIENTLOGPATH");
> +    if(!axis_transport) {
> +      std::cerr<<"No AXIS_CLIENTLOGPATH environment variable found"<<endl; 
> +      exit(1);
> +    } else {
> +      m_pcValueArray[AXCONF_CLIENTLOGPATH] = axis_clientlog;
> +    }
> +//        m_pcValueArray[AXCONF_XMLPARSER] = "/usr/local/Axis/libs/libaxis_xmlparser.so";
> +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] = "/usr/local/Axis/libs/libaxis_transport.so";
> +//        m_pcValueArray[AXCONF_LOGPATH] = "/usr/local/Axis/logs/AxisLog";
> +//        m_pcValueArray[AXCONF_CLIENTLOGPATH] = "/usr/local/Axis/logs/AxisClientLog";
>          //m_pcValueArray[AXCONF_WSDDFILEPATH] = "/usr/local/Axis/conf/server.wsdd";
>          //m_pcValueArray[AXCONF_CLIENTWSDDFILEPATH] = "/usr/local/Axis/conf/client.wsdd";
>          m_pcValueArray[AXCONF_NODENAME] = "server name";
> diff -Naur axis-c-src-1-2-linux/src/engine/DeserializerPool.cpp
> axis-c-src-1-2-linux-vk/src/engine/DeserializerPool.cpp
> --- axis-c-src-1-2-linux/src/engine/DeserializerPool.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/DeserializerPool.cpp	2004-08-18 16:35:50.253448992 +0000
> @@ -57,7 +57,7 @@
>              delete* ppDZ;
>              *ppDZ = NULL;
>              unlock ();
> -            AXISTRACE1 ("Deserializer could not be initialized", CRITICAL);
> +            AXISTRACE1 ("Deserializer could not be initialized", AXIS_CRITICAL);
>              return AXIS_FAIL;
>          }
>      }
> diff -Naur axis-c-src-1-2-linux/src/engine/HandlerLoader.cpp
> axis-c-src-1-2-linux-vk/src/engine/HandlerLoader.cpp
> --- axis-c-src-1-2-linux/src/engine/HandlerLoader.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/HandlerLoader.cpp	2004-08-18 16:35:50.257448384 +0000
> @@ -86,7 +86,7 @@
>      pHandlerInfo->m_Handler = lt_dlopen (pHandlerInfo->m_sLib.c_str ());
>      if (!pHandlerInfo->m_Handler)
>      {
> -        AXISTRACE1("SERVER_ENGINE_LIBRARY_LOADING_FAILED", CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_LIBRARY_LOADING_FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>      }
>  #elif defined(WIN32)
> @@ -97,7 +97,7 @@
>          dlopen (pHandlerInfo->m_sLib.c_str (), pHandlerInfo->m_nLoadOptions);
>      if (!pHandlerInfo->m_Handler)
>      {
> -        AXISTRACE1("DLOPEN FAILED", CRITICAL);
> +        AXISTRACE1("DLOPEN FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>          //printf ("DLOPEN FAILED: %s\n", dlerror ());
>          //exit (1);
> @@ -132,7 +132,7 @@
>          {
>              delete pHandlerInfo;
>              unlock ();
> -            AXISTRACE1("SERVER_CONFIG_LIBRARY_PATH_EMPTY", CRITICAL);
> +            AXISTRACE1("SERVER_CONFIG_LIBRARY_PATH_EMPTY", AXIS_CRITICAL);
>              THROW_AXIS_CONFIG_EXCEPTION(SERVER_CONFIG_LIBRARY_PATH_EMPTY);
>              //return SERVER_CONFIG_LIBRARYPATHEMPTY;
>          }
> @@ -167,7 +167,7 @@
>                  unloadLib (pHandlerInfo);
>                  delete pHandlerInfo;
>                  unlock ();
> -                AXISTRACE1 ("Library loading failed", CRITICAL);
> +                AXISTRACE1 ("Library loading failed", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>                  //return SERVER_ENGINE_LIBRARYLOADINGFAILED;
>              }
> @@ -179,7 +179,7 @@
>          else
>          {
>              unlock ();
> -            AXISTRACE1 ("Library loading failed", CRITICAL);
> +            AXISTRACE1 ("Library loading failed", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_LIBRARY_LOADING_FAILED);
>              //return SERVER_ENGINE_LIBRARYLOADINGFAILED;
>          }
> @@ -205,14 +205,14 @@
>                  pBH->_functions->fini (pBH->_object);
>                  pHandlerInfo->m_Delete (pBH);
>                  unlock ();
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_INIT_FAILED);
>                  //return SERVER_ENGINE_HANDLERINITFAILED;
>              }
>          }
>          else if (0 == pBH->_object)
>          {
> -            AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", CRITICAL);
> +            AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", AXIS_CRITICAL);
>              THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_CREATION_FAILED);
>              //return SERVER_ENGINE_HANDLERCREATIONFAILED;
>          }
> @@ -231,7 +231,7 @@
>                  ((HandlerBase*) pBH->_object)->fini ();
>                  pHandlerInfo->m_Delete (pBH);
>                  unlock ();
> -                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_HANDLER_INIT_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_INIT_FAILED);
>                  //return SERVER_ENGINE_HANDLERINITFAILED;
>              }
> @@ -240,7 +240,7 @@
>      else
>      {
>          unlock ();
> -        AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", CRITICAL);
> +        AXISTRACE1("SERVER_ENGINE_HANDLER_CREATION_FAILED", AXIS_CRITICAL);
>          THROW_AXIS_ENGINE_EXCEPTION(SERVER_ENGINE_HANDLER_CREATION_FAILED);
>          //return SERVER_ENGINE_HANDLERCREATIONFAILED;
>      }
> diff -Naur axis-c-src-1-2-linux/src/engine/SOAPTransportFactory.cpp
> axis-c-src-1-2-linux-vk/src/engine/SOAPTransportFactory.cpp
> --- axis-c-src-1-2-linux/src/engine/SOAPTransportFactory.cpp	2004-07-09 07:22:04.000000000 +0000
> +++ axis-c-src-1-2-linux-vk/src/engine/SOAPTransportFactory.cpp	2004-08-18 16:35:50.269446560
> +0000
> @@ -65,7 +65,7 @@
>          if (!m_Create || !m_Delete)
>          {
>              unloadLib();
> -                        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
> +                        AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", AXIS_CRITICAL);
>                          THROW_AXIS_ENGINE_EXCEPTION2(SERVER_ENGINE_LOADING_TRANSPORT_FAILED, 
> strdup(m_pcLibraryPath));
>  			//throw AxisEngineException(SERVER_ENGINE_LIBRARY_LOADING_FAILED, strdup(m_pcLibraryPath));
>          }
> @@ -76,7 +76,7 @@
>  	}
>  	else
>  	{
> -                AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", CRITICAL);
> +                AXISTRACE1("SERVER_ENGINE_LOADING_TRANSPORT_FAILED", AXIS_CRITICAL);
>                  THROW_AXIS_ENGINE_EXCEPTION2(SERVER_ENGINE_LOADING_TRANSPORT_FAILED, 
> strdup(m_pcLibraryPath));
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Re: various bugs found, see attached patch

Posted by Valentine Kouznetsov <vk...@yahoo.com>.
Please apply this patch as well, it should be a part
of original one.
Valentine.



		
_______________________________
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush