This bit of code brings up an issue we've talked about, but I don't think
resolved.  The type mapping registration should really be done on the
service, not on the call object.  There could be many call objects created
from a service that all use the same registry and it's a lot of overhead to
register the type mappings for every call object.

If the registration was moved, then this "if (firstCall)" check wouldn't
occur.  The code inside the if block would be done in the service rather
than in the stub.

Since we probably won't resolve this anytime soon, I'll just make this code
thread-safe for now.

Russell Butek
[EMAIL PROTECTED]


Glyn Normington/UK/IBM@IBMGB on 02/20/2002 09:09:48 AM

Please respond to [EMAIL PROTECTED]

To:   [EMAIL PROTECTED]
cc:
Subject:  Re: [GUMP] Build Failure - Axis




I can't tell where the IllegalStateException originates from as the Gump
log doesn't show the stack trace of that exception. However, I came across
some non-threadsafe code in AddressBookSOAPBindingStub:

if (firstCall) {
    firstCall = false;

(generated by org.apache.axis.wsdl.toJava.JavaStubWriter), so I wonder if
that might be the cause?

Getting the stack trace would be a help in this situation, even if it only
points to an object which has been corrupted earlier, so I've added fatal
error logging to the testcase to ensure Gump records the details.

Glyn







Reply via email to