diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java index 4a9ebe77dd12a3c1945969d10c17da47e516b52a..0863742ed20726f56462da93d9e5680f373d4e16 100644 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java +++ b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java @@ -172,20 +172,14 @@ public class TSDBStatement implements Statement { } public boolean execute(String sql) throws SQLException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); - System.out.println(Thread.currentThread().getName() + " before execute " + sdf.format(new Date()) + "=====> isclosed: " + isClosed); if (isClosed) { - System.out.println(Thread.currentThread().getName() + " will throw " + sdf.format(new Date()) + "=====> isclosed: " + isClosed); throw new SQLException("Invalid method call on a closed statement."); } boolean res = true; - System.out.println(Thread.currentThread().getName() + " before JNI " + sdf.format(new Date()) + "=====> isclosed: " + isClosed); pSql = this.connector.executeQuery(sql); - System.out.println(Thread.currentThread().getName() + " after JNI " + sdf.format(new Date()) + "=====> isclosed: " + isClosed); long resultSetPointer = this.connector.getResultSet(); - if (resultSetPointer == TSDBConstants.JNI_CONNECTION_NULL) { this.connector.freeResultSet(pSql); throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); @@ -194,7 +188,6 @@ public class TSDBStatement implements Statement { this.connector.freeResultSet(pSql); res = false; } - System.out.println(Thread.currentThread().getName() + " after execute " + System.currentTimeMillis() + " =====> isclosed: " + isClosed); return res; } diff --git a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InvalidResultPointerExceptionTest.java b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InvalidResultPointerExceptionTest.java index 78c4adb758cfb72ec9fc17be2ea1fcc881ade31a..f3f8aa46c29a820b35bb516fae5ff040294717b7 100644 --- a/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InvalidResultPointerExceptionTest.java +++ b/src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InvalidResultPointerExceptionTest.java @@ -30,13 +30,14 @@ public class InvalidResultPointerExceptionTest { @Test public void testInvalidResultPointerException() { try (Connection conn = TSDBCommon.getConn("localhost")) { - Statement stmt = conn.createStatement(); List threads = IntStream.range(1, 2).boxed().map(i -> new Thread(() -> { while (true) { String sql = "insert into irp_test.weather values(now, " + random.nextInt(100) + ")"; try { + Statement stmt = conn.createStatement(); stmt.execute(sql); + stmt.close(); } catch (SQLException e) { e.printStackTrace(); } @@ -49,11 +50,12 @@ public class InvalidResultPointerExceptionTest { } }, "Thread-" + i)).collect(Collectors.toList()); - for (int i = 0; i < threads.size(); i++) { - threads.get(i).join(); + for (Thread thread : threads) + thread.start(); + for (Thread thread : threads) { + thread.join(); } - stmt.close(); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) {