You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Dmitry Beransky <dm...@gmail.com> on 2007/10/11 03:38:49 UTC

concurrency issue in v. 1.0.2

Hi,

We are still using an old version of Struts (1.0.2) and at this point
upgrading to a newer version would require a really compelling reason, which
I might have found.  While investigating reasons behind slowness of our
website under a heavy load, I stumbled upon a very heavy contention issue
with PropertyDescriptor.getReadMethod().  Profiling with YourKit showed that
all Tomcats threads block each other while in that method at a rate close to
50%.  Backtracing revealed that calls to getReadMethod() are done via
commons-beanutil (we are using v. 1.6) from Struts' own OptionsTag.doEndTag().


Can anyone tell me if this issue has been addressed and fixed in more recent
releases of Struts?


Thanks
Dmitry

Re: concurrency issue in v. 1.0.2

Posted by Niall Pemberton <ni...@gmail.com>.
On 10/11/07, Dmitry Beransky <dm...@gmail.com> wrote:
> Hi,
>
> We are still using an old version of Struts (1.0.2) and at this point
> upgrading to a newer version would require a really compelling reason, which
> I might have found.  While investigating reasons behind slowness of our
> website under a heavy load, I stumbled upon a very heavy contention issue
> with PropertyDescriptor.getReadMethod().  Profiling with YourKit showed that
> all Tomcats threads block each other while in that method at a rate close to
> 50%.  Backtracing revealed that calls to getReadMethod() are done via
> commons-beanutil (we are using v. 1.6) from Struts' own OptionsTag.doEndTag().

AFAIK Struts 1.0.2 was before Commons BeanUtils (Struts utility
classes were factored out to become Commons BeanUtils) - but my
understanding is that Struts only used Commoms BeanUtils from 1.1
onwards - up till then they (e.g. PropertyUtils) were internal to
Struts.

Anyway, thats a bit of a moot point since both the old internal Struts
PropertyUtils and current Commons BeanUtils's PropertyUtils both still
use PropertyDescriptor.getReadMethod() - so it doesn't seem like
upgrading from Struts 1.0.2 to later Struts & BeanUtils would make any
difference. Since where you say you have an issue though is in java's
PropertyDescriptor.getReadMethod() then perhaps upgrading the JDK
might make a difference? Would be interesting to know which JDK
version (and Tomcat version) you're using

Niall

> Can anyone tell me if this issue has been addressed and fixed in more recent
> releases of Struts?
>
>
> Thanks
> Dmitry

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org