Details
-
Component Upgrade
-
Resolution: Done
-
Major
-
7.0.0.Alpha4
Description
The version of the H2 driver used currently in the test suite, 1.3.166, has a concurrency issue: https://code.google.com/p/h2database/issues/detail?id=411
The unsynchronized access to a static HashSet in CloseWatcher can lead to an infinite loop in the JDBC test suite:
"testng-StringStoreWithManagedConnectionTest" prio=10 tid=0x00007fc6504a9000 nid=0x50fd runnable [0x00007fc654803000] java.lang.Thread.State: RUNNABLE at java.util.HashMap.put(HashMap.java:498) at java.util.HashSet.add(HashSet.java:217) at org.h2.util.CloseWatcher.register(CloseWatcher.java:101) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:122) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94) at org.h2.Driver.connect(Driver.java:72) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:215) at org.infinispan.persistence.jdbc.connectionfactory.SimpleConnectionFactory.getConnection(SimpleConnectionFactory.java:58) at org.infinispan.persistence.jdbc.ManagedConnectionFactoryTest$DummyDataSource.getConnection(ManagedConnectionFactoryTest.java:73) at org.infinispan.persistence.jdbc.connectionfactory.ManagedConnectionFactory.getConnection(ManagedConnectionFactory.java:82) at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore.load(JdbcStringBasedStore.java:193)