Hi,
What I am trying to do is to run a scenario (like CompletionCommitTest),
but with Axis2 v.1.2 running on Tomcat. As it is observable Kandula2 is
already based on Axis2 v1.2. During the tests it came out that there are
some problems available: 

1) The first problem observed is in TransactionInHandler's method public
InvocationResponse invoke(MessageContext msgContext) throws AxisFault;
The problem is in the following lines:

                String wsaAction = msgContext.getWSAAction();
                if ((wsaAction !=
Constants.WS_COOR_CREATE_COORDINATIONCONTEXT)
                                && (wsaAction !=
Constants.WS_COOR_REGISTER)
                                && (wsaAction != Constants.WS_AT_COMMIT)
                                && (wsaAction !=
Constants.WS_AT_ROLLBACK)) 

The problem here is the usage of "!=" instead of !xStr.equals(yStr). If
in these lines two strings are compared that have one and the same run
of characters they are expected to be the same, so for example if 
wsaAction = Constants.WS_COOR_CREATE_COORDINATIONCONTEXT => wsaAction ==
Constants.WS_COOR_CREATE_COORDINATIONCONTEXT should return TRUE (because
of the String pool used in Java). The problem is that String wsaAction =
msgContext.getWSAAction(); creates the String with new String("..."),
which makes the two Strings (with the same run of characters) to be
different when compared with "==". 
That's why  "!=" should be replaced with !xStr.equals(yStr)? If so this
change should be propagated all over in the code.

2) The second problem observed is with the use of the following
constructor: new AxisFault(e); (see the same TransactionInHandler's
method public InvocationResponse invoke(MessageContext msgContext)
throws AxisFault) the problem is that this constructor is made protected
in the latest version of Axis2 and could not be used that way. We can
read in the JavaDoc of the mentioned constructor the following:

Construct a fault from a Throwable.  This is a protected constructor -
in general
to make an AxisFault from an Exception, you should be calling
AxisFault.makeFault(e),
which prevents AxisFaults within AxisFaults.

So AxisFault.makeFault(e) should be used instead.

3) It came out that the tags used in Module.xml file are case sensitive
(e.g. <outflow> should be written <OutFlow>), otherwise the given
handler is not invoked (and not viewed into the Axis2 Administration
page under the category "View Operation Specific Chains").

4) Currently we are suffering from some problems with the proper
creation of the SOAP messages exchanged. We will test and write you back
after some time, but it will be helpful if you can say when there will
be a "User Guide" available for Kandula2. Is there any resource that can
give us more detailed information how all these Contexts are used for
the proper creation of SOAP messages exchanged? 

5) When Kandula2 is expected to be released? I know it will be around
July. More specific?

Thank you in advance!
________________________________________________________ 
Dobri Kitipov
Phone: +359 2 915 36-19 | Fax: +359 2 915 36-23
[EMAIL PROTECTED] 
Software AG Development Centre Bulgaria EOOD
53-55 General Totleben Blvd. | 1606 Sofia | Bulgaria 
www.softwareag.com <http://www.softwareag.com/> 
________________________________________________________


Reply via email to