Re: sync on local variable
On 3/24/2010 8:42 PM, Roedy Green wrote:
On Wed, 24 Mar 2010 15:55:30 -0700, markspace<nospam@nowhere.com>
wrote, quoted or indirectly quoted someone who said :
If you later export that local reference to another thread or object, it
should be fine. It's valid to synchronize on a object that some other
part of the system will see later.
I have a JTable. I get a row put it in a local variable and
synchronise on that. Does that not lock anyone else getting that
row, even if they have nothing to do with my local variable?
AppToWatch row;
synchronized ( ALL_ROWS )
{
row = ALL_ROWS.get( rowIndex );
state = row.getState();
}
...
synchronized ( row )
{
url = row.getVersionURL();
marker = row.getMarker();
}
Are you sure you didn't misread IntelliJ's complaint? The
thing that strikes me as odd about this code is that there are
three method calls made on row's object, only two of which are
synchronized on that object. It's conceivable that this is all
right, but it sure looks strange to me -- and perhaps IntelliJ
thinks it peculiar, too.
--
Eric Sosman
esosman@ieee-dot-org.invalid