dev@glassfish.java.net

Re: FindBugs errors - MSF_MUTABLE_SERVLET_FIELD - false positive?

From: Andreas Loew <Andreas.Loew_at_oracle.com>
Date: Wed, 20 Apr 2011 13:19:37 +0200

Am 20.04.2011 11:27, schrieb Oleksiy Stashok:
>>> The description of MSF_MUTABLE_SERVLET_FIELD says:
>>>
>>> "A web server generally only creates one instance of servlet or jsp
>>> class (i.e., treats the class as a Singleton), and will have
>>> multiple threads invoke methods on that instance to service multiple
>>> simultaneous requests. Thus, having a mutable instance field
>>> generally creates race conditions."
>>>
>>> Would it be possible to make your field a *static* variable of your
>>> Servlet class instead of an instance variable and thereby signal to
>>> FindBugs that you take care of the fact that it will not create a
>>> race condition?
>>>
>> No, the value is associated with an instance and computed from
>> ServletConfig. I could have synchronized, But I feel its not
>> warranted for this case.
>
> volatile might be enough.

If marking the field as "volatile" indeed were sufficient to get rid of
the FindBugs warning, that would be kind of absurd given the original
reasoning for the warning (see above).

Looks like this rather turns out an issue with FindBugs than an issue
found by FindBugs... :-(

You may want to contact the FindBugs team in order to find out about
their proposed way to handle this...

BR,
Andreas