Hi,

I'm sorry for the delay... I will have a look in one week (I'm on
vacation for one week).

Regards,
Thomas


On Tue, Jun 30, 2009 at 7:25 AM, Eric Faulhaber<[email protected]> wrote:
> Hello Thomas,
>
> During testing of a project which uses H2 v1.1.113 in embedded,
> multi-threaded mode for temporary table support, we hit a
> ConcurrentModificationException in DiskFile.java.  A colleague found that
> unsynchronized access to the potentiallyFreePages set in that class was the
> cause.
>
> I have attached his test case which illustrates the problem (at least on my
> dual core Ubuntu box using the Sun Linux JVM v1.6.0_05).  The attached zip
> file also contains a patch which resolves the issue (note the patch is made
> against h2_head revision 1583 for convenience, but I have only tested the
> fix with v1.1.113).
>
> The fix synchronizes access to the potentiallyFreePages object using the
> object itself as the monitor, even though the reference to that object may
> be reset with a new HashSet instance in DiskFile.reset().  I did this to
> avoid adding another instance variable to the class as a lock object,
> because it seems like reset() is only called at well known times, such that
> I presume this to be a safe approach.  If this presumption is incorrect (I
> could not determine this definitively by reviewing the code), it would be
> better to synchronize on a separate lock object.
>
> Please consider including this fix into the project.
>
> Best regards,
> Eric Faulhaber
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to