Hey
Aaron Mulder wrote:
> Download the JMX RI, and look at the source code for
> com/sun/management/jmx/Introspector.java and in particular the for loop
> that begins on line 386 and ends on line 397. This is where it generates
> the attribute list (by combining entries for getters and setters).
> The logic here looks very sketchy to me - here's my pseudocode:
>
> for(i=0; i<vector.size(); i++) {
> ...
> if(readable and writeable) {
> vector.removeElementAt(i);
> }
> }
>
> To me, it looks like that will skip element i+1: when you remove
> i, then i+1 becomes i, then you loop and increment to the new i+1 which
> used to be i+2...
> Now, if i+1 happened to be setURL, it may get skipped, and bad
> things could happen.
Wow... they actually do that?! What a newbie bug *sigh*... yeah, that
definitely is wrong. The right thing to do is make a copy and remove.
/Rickard
--
Rickard �berg
Email: [EMAIL PROTECTED]
http://www.telkel.com
http://www.jboss.org
http://www.dreambean.com