postgresql-jdbc.git / summary / log / commit / refs

commit    74a426b929f47a3f585dd6e535300d2ffe77a9da
Author:   James <jmt158@gmail.com>
Commit:   Dave Cramer <davecramer@gmail.com>
Date:     Tue Apr 04 11:32:34 2017 +0000

    fix: use SQLWarning(String reason) constructor for correct DriverMana… (#751)
    
    * fix: use SQLWarning(String reason) constructor for correct DriverManager logging
    
    Previously, the default constructor was used which only logs "SQLWarning: ", but no information about the warning.
    


.../main/java/org/postgresql/util/PSQLWarning.java | 9 +----- .../java/org/postgresql/util/PSQLWarningTest.java | 37 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/pgjdbc/src/main/java/org/postgresql/util/PSQLWarning.java b/pgjdbc/src/main/java/org/postgresql/util/PSQLWarning.java index 0a81fb0a..c52ff22d 100644 --- a/pgjdbc/src/main/java/org/postgresql/util/PSQLWarning.java +++ b/pgjdbc/src/main/java/org/postgresql/util/PSQLWarning.java @@ -13,17 +13,10 @@ public class PSQLWarning extends SQLWarning { private ServerErrorMessage serverError; public PSQLWarning(ServerErrorMessage err) { + super(err.toString(), err.getSQLState()); this.serverError = err; } - public String toString() { - return serverError.toString(); - } - - public String getSQLState() { - return serverError.getSQLState(); - } - public String getMessage() { return serverError.getMessage(); } diff --git a/pgjdbc/src/test/java/org/postgresql/util/PSQLWarningTest.java b/pgjdbc/src/test/java/org/postgresql/util/PSQLWarningTest.java new file mode 100644 index 00000000..04853ddf --- /dev/null +++ b/pgjdbc/src/test/java/org/postgresql/util/PSQLWarningTest.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016, PostgreSQL Global Development Group + * See the LICENSE file in the project root for more information. + */ + +package org.postgresql.util; + +import static org.junit.Assert.assertTrue; + +import org.postgresql.test.TestUtil; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.Statement; + + +public class PSQLWarningTest { + + @Test + public void testPSQLLogsToDriverManagerMessage() throws Exception { + Connection con = TestUtil.openDB(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DriverManager.setLogWriter(new PrintWriter(new OutputStreamWriter(baos, "ASCII"))); + + Statement stmt = con.createStatement(); + stmt.execute("DO language plpgsql $$ BEGIN RAISE NOTICE 'test notice'; END $$;"); + assertTrue(baos.toString().contains("NOTICE: test notice")); + + stmt.close(); + con.close(); + } +} [parent: a7e0c83be936]