Evgeny Stanilovsky created IGNITE-20526:
-------------------------------------------

             Summary: JDBC2 (thin client) throws IllegalMonitorStateException 
if property ignite.jdbc..nodeId is filled
                 Key: IGNITE-20526
                 URL: https://issues.apache.org/jira/browse/IGNITE-20526
             Project: Ignite
          Issue Type: Improvement
          Components: sql
    Affects Versions: 2.15
            Reporter: Evgeny Stanilovsky


Any sql query with non empty resultset will throw exception, if jdbc2 (thin) is 
used and operates under REPLICATED caches:
{noformat}
Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read lock, 
not locked by current thread
        at 
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:448)
        at 
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:432)
        at 
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1382)
        at 
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:897)
        at 
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlock(GridH2Table.java:566)
        at 
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockReadInternal(GridH2Table.java:510)
        at 
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockTables(GridH2Table.java:1293)
        at 
org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.unlockTables(H2ResultSetIterator.java:267)
{noformat}


Step to reproduce, take for example existing
JdbcComplexQuerySelfTest
and change implementation with:

{noformat}
    @Override protected void beforeTest() throws Exception {
        Properties cfg = new Properties();

        cfg.setProperty(PROP_NODE_ID, grid(0).localNode().id().toString());

        stmt = DriverManager.getConnection(BASE_URL, cfg).createStatement();

        assert stmt != null;
        assert !stmt.isClosed();
    }
{noformat}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to