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]