I wrote:
> This is very strange, as executeUpdate() is, as you say, synchronized.

Ah, but it isn't! Statement.executeUpdate(String) is not synchronized,
so many executing at once can catch the underlying library out of
order.

I'm a little torn about what to do here. I can't find anything the
Javadocs about whether a Statement should be thread-safe, and the
normal Java practice is assume something is not. So this is indeed
correct behaviour, we should be generating one Statement for each
thread. In fact, we should probably be creating a different Connection
for each thread, though the SQLiteJDBC Connection is thread safe.

The other side to this is "synchronized" has very little overhead in a
modern JVM and it would be easy to add.

For now, I think I'll leave it as it is, adding the JNIEnv fix.

d.

--~--~---------~--~----~------------~-------~--~----~
Mailing List: http://groups.google.com/group/sqlitejdbc?hl=en
To unsubscribe, send email to [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Reply via email to