From f954ebf577d06cc42b357adab144fc4aef5d9d4b Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Thu, 11 Dec 2003 03:59:37 +0000 Subject: [PATCH] patch to make PSQLState serializable, and a test case for it added a test case for getLastOID --- .../org/postgresql/test/jdbc2/MiscTest.java | 41 +++++++++++++++++-- .../jdbc/org/postgresql/util/PSQLState.java | 2 +- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/MiscTest.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/MiscTest.java index 97ad814a674..8450a0c171b 100644 --- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/MiscTest.java +++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/MiscTest.java @@ -3,9 +3,10 @@ package org.postgresql.test.jdbc2; import org.postgresql.test.TestUtil; import junit.framework.TestCase; import java.sql.*; +import java.io.*; /* - * $Id: MiscTest.java,v 1.10 2003/05/29 04:39:48 barry Exp $ + * $Id: MiscTest.java,v 1.10.4.1 2003/12/11 03:59:37 davec Exp $ * * Some simple tests based on problems reported by users. Hopefully these will * help prevent previous problems from re-occuring ;-) @@ -65,8 +66,18 @@ public class MiscTest extends TestCase fail( "Should not execute this, as a SQLException s/b thrown" ); con.commit(); } - catch ( Exception ex ) - {} + catch ( SQLException ex ) + { + // Verify that the SQLException is serializable. + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + oos.writeObject(ex); + oos.close(); + } catch (IOException ioe) { + fail(ioe.getMessage()); + } + } try { con.commit(); @@ -75,7 +86,31 @@ public class MiscTest extends TestCase catch ( Exception ex) {} } + public void testLastOID() + { + Connection con = null; + try + { + con = TestUtil.openDB(); + TestUtil.createTable( con, "testoid","id int"); + Statement stmt = con.createStatement(); + con.setAutoCommit(false); + stmt.executeUpdate( "insert into testoid values (1)" ); + con.commit(); + long insertedOid = ((org.postgresql.PGStatement)stmt).getLastOID(); + con.setAutoCommit(true); + TestUtil.dropTable( con, "testoid"); + } + catch ( Exception ex ) + { + fail( ex.getMessage() ); + } + finally + { + try{if (con !=null )con.close();}catch(Exception ex){} + } + } public void xtestLocking() { diff --git a/src/interfaces/jdbc/org/postgresql/util/PSQLState.java b/src/interfaces/jdbc/org/postgresql/util/PSQLState.java index 152170e0c97..b1d1efa63e3 100644 --- a/src/interfaces/jdbc/org/postgresql/util/PSQLState.java +++ b/src/interfaces/jdbc/org/postgresql/util/PSQLState.java @@ -10,7 +10,7 @@ package org.postgresql.util; - public class PSQLState + public class PSQLState implements java.io.Serializable { private String state;