package at.erven;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestClose {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try{
			Class.forName("org.postgresql.Driver");
			final Connection c = DriverManager.getConnection("jdbc:postgresql://localhost/pgtest", "user", "pass");
			System.out.println("Connected.");
			
			final Statement st = c.createStatement();
			
			final Thread t1 = new Thread(){
				@Override
				public void run() {
					try {
						System.out.println("t1: executeQuery pg_sleep()...");
						final ResultSet rs = st.executeQuery("SELECT pg_sleep(3)");
						System.out.println("t1: finished pg_sleep()...");
						while(rs.next()){
							System.out.println("t1: result: "+rs.getObject(1));
						}
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			};

			final Thread t2 = new Thread(){
				@Override
				public void run() {
					try {
						Thread.sleep(1500);
						System.out.println("t2: closing statement...");
						st.close();
						System.out.println("t2: closed.");
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			};

			t1.start();
			t2.start();
			
		}catch(Exception z){
			z.printStackTrace();
		}

	}

}

