On 6/6/07, Jeff Amiel <[EMAIL PROTECTED]> wrote:
I'm not debating that there could be bad user code here....(although I've reduced my test cases down to an empty axis service call and an nearly empty struts action....If there IS bad code, it's probably at a low level inside axis or struts or some other library that I don't have immediate control over) What I'm trying to determine if the re-use of response instances could be the reason why the axis servlet is getting a response given to it that is already in a committed state... I'm not 'afraid' of dealing with pooled objects that may be in a questionable state (like with database connection pool handles...knowing to check/set auto-commit on them when acquiring them from pool because the previous user may have changed some settings on them)...I'm just interested in knowing if this is a 'known' danger of running without a security manager on Tomcat (5.5) and just as easily avoidable.
I'm just trying to warn you that the evidence of the last 5 or so years (given how many people deploy apps on Tomcat) means you are going to get a lot of skepticism if you go to the Tomcat user list and try to blame this kind of problem on Tomcat. The likelihood of that being the real issue, given the fact that even *you* can't reproduce it reliably, and the fact that "nothing changed" in your environment, makes this the least possible likelihood. Note that probably 99.9% of the apps running under Tomcat standalone run without a security manager -- but that is even *more* unlikely to be the issue. Of moderate possibility is that one of the frameworks you are using (Struts or Axis) is at fault. Again, the odds are against you -- but not quite as much as that it's a Tomcat issue. On the other side of the coin: * Each of these two frameworks has been deployed widely -- on Tomcat and on other servers -- without a large number of complaints of this sort of issue. * The symptoms you describe are the classic scenario where a previously existing application level thread safety issue has already existed, but didn't surface until the usage pattern of the app itself changed. Note that I'm not at all familiar with the Axis code base, and have never deployed an app that used Axis (with or without Struts). But, given the fact that the exception is in fact coming from Axis, my suggestion is: * Look to your own code first -- in particular at the logic of the Struts action you claim is being executed "at the same time as a SOAP call to the Axis servlet." * Ask on the Axis list if anyone has seen this, including the full stack trace so that proper diagnosis is possible. It's not impossible that there is a threading problem in Struts or Tomcat that is causing this. But, in my years of experience, my gut says that is probably not where the issue actually exists. Craig --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]