view tests/Test_CisValid.java @ 391:f523727db392

Moved Java classes from packages starting with nl.cwi.monetdb.* to package org.monetdb.* This naming complies to the Java Package Naming convention as MonetDB's main website is www.monetdb.org.
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 12 Nov 2020 22:02:01 +0100 (2020-11-12)
parents 54137aeb1f92
children bf9f6b6ecf40
line wrap: on
line source
/*
 * 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 - 2020 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 {
		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();
	}
}