Mercurial > hg > monetdb-java
diff tests/Test_CisValid.java @ 0:a5a898f6886c
Copy of MonetDB java directory changeset e6e32756ad31.
author | Sjoerd Mullender <sjoerd@acm.org> |
---|---|
date | Wed, 21 Sep 2016 09:34:48 +0200 (2016-09-21) |
parents | |
children | 04fbf3655452 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/tests/Test_CisValid.java @@ -0,0 +1,41 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V. + */ + +import java.sql.*; + +public class Test_CisValid { + /* Test that after an error has occurred during a transaction, one can + * still test if the connection is valid or not. + * The function Connection.isValid() should only return TRUE or FALSE. It + * shall never alter the state of this connection */ + public static void main(String[] args) throws Exception { + Class.forName("nl.cwi.monetdb.jdbc.MonetDriver"); + Connection conn = DriverManager.getConnection(args[0]); + Statement stmt = conn.createStatement(); + + try { + conn.setAutoCommit(false); // start a transaction + stmt.execute("SELECT COUNT(*) FROM doesnotexist;"); // let's trigger an error + } catch (SQLException e) { + // e.printStackTrace(); + System.err.println("Expected error: " + e); + + try { + // test calling conn.isValid() + System.out.println("Validating connection: conn.isValid? " + conn.isValid(30)); + // Can we rollback on this connection without causing an error? + conn.rollback(); + } catch (SQLException e2) { + System.err.println("UnExpected error: " + e2); + } + } + + stmt.close(); + conn.close(); + } +}