Subject: [pgjdbc/pgjdbc] PR #943: fix: synchronize modification of shared calendar (#921)

From: "tordmjohnson (@tordmjohnson)" <[email-masked]>
Date: Mon, 11 Sep 2017 01:55:46 +0000

Calendar is not thread-safe, so ensuring all entry points that modify shared instances of `org.postgresql.jdbc.TimestampUtils.calendarWithUserTz` are properly synchronized.

fixes #921

---

Simply ensuring the following methods:

- `TimestampUtils.convertToDate(long,TimeZone)`
- `TimestampUtils.convertToTime(long,TimeZone)`
- `TimestampUtils.guessTimestamp(long,TimeZone)`

are synchronized, as they may modify the shared calendar `calendarWithUserTz` via `java.util.Calendar.set()` methods.

I have added a failing unit test to `org.postgresql.test.jdbc2.DateTest`, which outputs something like

```
   testDateThreadSafety(org.postgresql.test.jdbc2.DateTest)  Time elapsed: 0.301 sec  <<< FAILURE!
   java.lang.AssertionError: expected:<2017> but was:<7777>
   	at org.junit.Assert.fail(Assert.java:88)
   	at org.junit.Assert.failNotEquals(Assert.java:834)
   	at org.junit.Assert.assertEquals(Assert.java:645)
   	at org.junit.Assert.assertEquals(Assert.java:631)
   	at org.postgresql.test.jdbc2.DateTest.testDateThreadSafety(DateTest.java:216)
```

and confirmed it passes under JDK 8, 7, and 6 ("BEFORE", "AFTER", "JDK7", and "JDK6", respectively, below).

```
--- [BEFORE: mvn clean package] ---

johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc$ mvn clean package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] PostgreSQL JDBC Driver - JDBC 4.2
[INFO] PostgreSQL JDBC Driver - benchmarks
[INFO] PostgreSQL JDBC Driver aggregate
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building PostgreSQL JDBC Driver - JDBC 4.2 42.1.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ postgresql ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-java) @ postgresql ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:parse-version (parse-version) @ postgresql ---
[INFO] 
[INFO] --- properties-maven-plugin:1.0-alpha-2:read-project-properties (default) @ postgresql ---
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.2
[INFO] Added MAVEN property mvn.project.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=https://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.2
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.2
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=42
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=true
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.checkstyle.version=7.8.2
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.2
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 208 files, copied 16 files, elapsed time 355ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 17 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ postgresql ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 208 source files to /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/classes
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/jdbc3/Jdbc3PoolingDataSource.java: Some input files use or override a deprecated API.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/jdbc3/Jdbc3PoolingDataSource.java: Recompile with -Xlint:deprecation for details.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/util/LruCache.java: Some input files use unchecked or unsafe operations.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/util/LruCache.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessTestSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.2
[INFO] Added MAVEN property mvn.project.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=https://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.2
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.2
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=42
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=true
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.checkstyle.version=7.8.2
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.2
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 145 files, copied 2 files, elapsed time 93ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ postgresql ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 145 source files to /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/test-classes
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/jdbc2/optional/CaseOptimiserDataSourceTest.java: Some input files use or override a deprecated API.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/jdbc2/optional/CaseOptimiserDataSourceTest.java: Recompile with -Xlint:deprecation for details.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/hostchooser/MultiHostsConnectionTest.java: Some input files use unchecked or unsafe operations.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/hostchooser/MultiHostsConnectionTest.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ postgresql ---
[INFO] Surefire report directory: /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Running org.postgresql.test.extensions.ExtensionsTestSuite
Tests run: 5, Failures: 0, Errors: 0, Skipped: 5, Time elapsed: 0.079 sec - in org.postgresql.test.extensions.ExtensionsTestSuite
Running org.postgresql.test.osgi.OsgiTestSuite
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.osgi.OsgiTestSuite
Running org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Running org.postgresql.test.ssl.SslTestSuite
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in org.postgresql.test.ssl.SslTestSuite
Running org.postgresql.test.jdbc2.Jdbc2TestSuite
Using seed = 1505089562717 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089562717 to reproduce the test
Using seed = 1505089562949 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089562949 to reproduce the test
Using seed = 1505089563195 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089563195 to reproduce the test
Using seed = 1505089563457 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089563457 to reproduce the test
Using seed = 1505089563678 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089563678 to reproduce the test
Using seed = 1505089563915 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089563915 to reproduce the test
Using seed = 1505089564124 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089564124 to reproduce the test
Using seed = 1505089564330 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089564330 to reproduce the test
Using seed = 1505089564555 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089564555 to reproduce the test
Using seed = 1505089564777 for StrangeInputStream. Set -DStrangeInputStream.seed=1505089564777 to reproduce the test
Tests run: 4117, Failures: 1, Errors: 0, Skipped: 9, Time elapsed: 108.045 sec <<< FAILURE! - in org.postgresql.test.jdbc2.Jdbc2TestSuite
testDateThreadSafety(org.postgresql.test.jdbc2.DateTest)  Time elapsed: 0.265 sec  <<< FAILURE!
java.lang.AssertionError: expected:<2017> but was:<7777>
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:834)
	at org.junit.Assert.assertEquals(Assert.java:645)
	at org.junit.Assert.assertEquals(Assert.java:631)
	at org.postgresql.test.jdbc2.DateTest.testDateThreadSafety(DateTest.java:240)

Running org.postgresql.test.jdbc2.optional.OptionalTestSuite
Tests run: 49, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.989 sec - in org.postgresql.test.jdbc2.optional.OptionalTestSuite
Running org.postgresql.test.jdbc2.AutoRollbackTestSuite
Tests run: 96, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.748 sec - in org.postgresql.test.jdbc2.AutoRollbackTestSuite
Running org.postgresql.test.socketfactory.SocketFactoryTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec - in org.postgresql.test.socketfactory.SocketFactoryTestSuite
Running org.postgresql.test.hostchooser.MultiHostTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in org.postgresql.test.hostchooser.MultiHostTestSuite
Running org.postgresql.test.jdbc4.Jdbc4TestSuite
Tests run: 117, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.528 sec - in org.postgresql.test.jdbc4.Jdbc4TestSuite
Running org.postgresql.test.jdbc4.jdbc41.Jdbc41TestSuite
JUnit used sun.misc.Launcher$AppClassLoader@4aa298b7
SeparateClassLoaderInvokeMethod used sun.misc.Launcher$AppClassLoader@4aa298b7
se.jiderhamn.classloader.RedefiningClassLoader[org.postgresql.test.jdbc4.jdbc41.SharedTimerClassLoaderLeakTest.sharedTimerDoesNotCauseLeak]@554dfb98 is being finalized
Tests run: 50, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 1.278 sec - in org.postgresql.test.jdbc4.jdbc41.Jdbc41TestSuite
Running org.postgresql.test.xa.XATestSuite
Tests run: 12, Failures: 0, Errors: 0, Skipped: 12, Time elapsed: 0.053 sec - in org.postgresql.test.xa.XATestSuite
Running org.postgresql.test.jdbc3.Jdbc3TestSuite
Tests run: 159, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 2.087 sec - in org.postgresql.test.jdbc3.Jdbc3TestSuite
Running org.postgresql.test.jdbc42.Jdbc42TestSuite
Tests run: 44, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 613.623 sec - in org.postgresql.test.jdbc42.Jdbc42TestSuite
Running org.postgresql.replication.ReplicationTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.007 sec - in org.postgresql.replication.ReplicationTestSuite

Results :

Failed tests: 
  DateTest.testDateThreadSafety:240 expected:<2017> but was:<7777>

Tests run: 4660, Failures: 1, Errors: 0, Skipped: 33

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] PostgreSQL JDBC Driver - JDBC 4.2 .................. FAILURE [12:17 min]
[INFO] PostgreSQL JDBC Driver - benchmarks ................ SKIPPED
[INFO] PostgreSQL JDBC Driver aggregate ................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12:18 min
[INFO] Finished at: 2017-09-10T20:36:27-04:00
[INFO] Final Memory: 28M/478M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project postgresql: There are test failures.
[ERROR] 
[ERROR] Please refer to /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc$ 

--- [AFTER: mvn clean package] ---

johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc$ mvn clean package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] PostgreSQL JDBC Driver - JDBC 4.2
[INFO] PostgreSQL JDBC Driver - benchmarks
[INFO] PostgreSQL JDBC Driver aggregate
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building PostgreSQL JDBC Driver - JDBC 4.2 42.1.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ postgresql ---
[INFO] Deleting /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-java) @ postgresql ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:parse-version (parse-version) @ postgresql ---
[INFO] 
[INFO] --- properties-maven-plugin:1.0-alpha-2:read-project-properties (default) @ postgresql ---
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.2
[INFO] Added MAVEN property mvn.project.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=https://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.2
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.2
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=42
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=true
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.checkstyle.version=7.8.2
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.2
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 208 files, copied 16 files, elapsed time 312ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 17 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ postgresql ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 208 source files to /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/classes
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/jdbc3/Jdbc3PoolingDataSource.java: Some input files use or override a deprecated API.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/jdbc3/Jdbc3PoolingDataSource.java: Recompile with -Xlint:deprecation for details.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/util/LruCache.java: Some input files use unchecked or unsafe operations.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src/org/postgresql/util/LruCache.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessTestSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.2
[INFO] Added MAVEN property mvn.project.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=https://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.2
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.2
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=42
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=true
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.checkstyle.version=7.8.2
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.SNAPSHOT
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.2
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 145 files, copied 2 files, elapsed time 98ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ postgresql ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 145 source files to /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/test-classes
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/jdbc2/optional/CaseOptimiserDataSourceTest.java: Some input files use or override a deprecated API.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/jdbc2/optional/CaseOptimiserDataSourceTest.java: Recompile with -Xlint:deprecation for details.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/hostchooser/MultiHostsConnectionTest.java: Some input files use unchecked or unsafe operations.
[INFO] /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/gen-test-src/org/postgresql/test/hostchooser/MultiHostsConnectionTest.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ postgresql ---
[INFO] Surefire report directory: /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Running org.postgresql.test.extensions.ExtensionsTestSuite
Tests run: 5, Failures: 0, Errors: 0, Skipped: 5, Time elapsed: 0.075 sec - in org.postgresql.test.extensions.ExtensionsTestSuite
Running org.postgresql.test.osgi.OsgiTestSuite
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.osgi.OsgiTestSuite
Running org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Running org.postgresql.test.ssl.SslTestSuite
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.ssl.SslTestSuite
Running org.postgresql.test.jdbc2.Jdbc2TestSuite
Using seed = 1505090813965 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090813965 to reproduce the test
Using seed = 1505090814211 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090814211 to reproduce the test
Using seed = 1505090814446 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090814446 to reproduce the test
Using seed = 1505090814676 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090814676 to reproduce the test
Using seed = 1505090814891 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090814891 to reproduce the test
Using seed = 1505090815118 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090815118 to reproduce the test
Using seed = 1505090815352 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090815352 to reproduce the test
Using seed = 1505090815582 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090815582 to reproduce the test
Using seed = 1505090816429 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090816429 to reproduce the test
Using seed = 1505090817198 for StrangeInputStream. Set -DStrangeInputStream.seed=1505090817198 to reproduce the test
Tests run: 4117, Failures: 0, Errors: 0, Skipped: 9, Time elapsed: 199.618 sec - in org.postgresql.test.jdbc2.Jdbc2TestSuite
Running org.postgresql.test.jdbc2.optional.OptionalTestSuite
Tests run: 49, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 1.096 sec - in org.postgresql.test.jdbc2.optional.OptionalTestSuite
Running org.postgresql.test.jdbc2.AutoRollbackTestSuite
Tests run: 96, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.507 sec - in org.postgresql.test.jdbc2.AutoRollbackTestSuite
Running org.postgresql.test.socketfactory.SocketFactoryTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec - in org.postgresql.test.socketfactory.SocketFactoryTestSuite
Running org.postgresql.test.hostchooser.MultiHostTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec - in org.postgresql.test.hostchooser.MultiHostTestSuite
Running org.postgresql.test.jdbc4.Jdbc4TestSuite
Tests run: 117, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.207 sec - in org.postgresql.test.jdbc4.Jdbc4TestSuite
Running org.postgresql.test.jdbc4.jdbc41.Jdbc41TestSuite
JUnit used sun.misc.Launcher$AppClassLoader@4aa298b7
SeparateClassLoaderInvokeMethod used sun.misc.Launcher$AppClassLoader@4aa298b7
se.jiderhamn.classloader.RedefiningClassLoader[org.postgresql.test.jdbc4.jdbc41.SharedTimerClassLoaderLeakTest.sharedTimerDoesNotCauseLeak]@554dfb98 is being finalized
Tests run: 50, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 1.133 sec - in org.postgresql.test.jdbc4.jdbc41.Jdbc41TestSuite
Running org.postgresql.test.xa.XATestSuite
Tests run: 12, Failures: 0, Errors: 0, Skipped: 12, Time elapsed: 0.056 sec - in org.postgresql.test.xa.XATestSuite
Running org.postgresql.test.jdbc3.Jdbc3TestSuite
Tests run: 159, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 2.224 sec - in org.postgresql.test.jdbc3.Jdbc3TestSuite
Running org.postgresql.test.jdbc42.Jdbc42TestSuite
Tests run: 44, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1,877.701 sec - in org.postgresql.test.jdbc42.Jdbc42TestSuite
Running org.postgresql.replication.ReplicationTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.015 sec - in org.postgresql.replication.ReplicationTestSuite

Results :

Tests run: 4660, Failures: 0, Errors: 0, Skipped: 33

[INFO] 
[INFO] --- maven-bundle-plugin:2.5.3:bundle (default-bundle) @ postgresql ---
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building PostgreSQL JDBC Driver - benchmarks 42.1.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ pgjdbc-benchmark ---
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessSources) @ pgjdbc-benchmark ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - benchmarks
[INFO] Added MAVEN property mvn.project.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc
[INFO] Added MAVEN property mvn.project.packaging=jar
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:pgjdbc-benchmark:jar:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=PostgreSQL JDBC Driver - benchmarks
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:pgjdbc-benchmark:jar:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=pgjdbc-benchmark
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:pgjdbc-benchmark:jar
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=jar
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=http://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.current.jdk=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC${jdbc.specification.version}
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=true
[INFO] Added MAVEN property mvn.project.property.jmh.version=1.17.4
[INFO] Added MAVEN property mvn.project.property.uberjar.name=benchmarks
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC${jdbc.specification.version}
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.javac.target=1.8
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-src
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 15 files, copied 0 files, elapsed time 57ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ pgjdbc-benchmark ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ pgjdbc-benchmark ---
[INFO] Compiling 15 source files to /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/classes
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessTestSources) @ pgjdbc-benchmark ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - benchmarks
[INFO] Added MAVEN property mvn.project.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc
[INFO] Added MAVEN property mvn.project.packaging=jar
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:pgjdbc-benchmark:jar:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=PostgreSQL JDBC Driver - benchmarks
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:pgjdbc-benchmark:jar:42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=pgjdbc-benchmark
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:pgjdbc-benchmark:jar
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=jar
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=http://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.current.jdk=1.8
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC${jdbc.specification.version}
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=true
[INFO] Added MAVEN property mvn.project.property.jmh.version=1.17.4
[INFO] Added MAVEN property mvn.project.property.uberjar.name=benchmarks
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC${jdbc.specification.version}
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.javac.target=1.8
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-src
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/test/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-test-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 1 files, copied 0 files, elapsed time 0ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/test/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/gen-test-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ pgjdbc-benchmark ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ pgjdbc-benchmark ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ pgjdbc-benchmark ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ pgjdbc-benchmark ---
[INFO] Building jar: /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/pgjdbc-benchmark-42.1.5-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-shade-plugin:2.2:shade (default) @ pgjdbc-benchmark ---
[INFO] Including org.openjdk.jmh:jmh-core:jar:1.17.4 in the shaded jar.
[INFO] Including net.sf.jopt-simple:jopt-simple:jar:4.6 in the shaded jar.
[INFO] Including org.apache.commons:commons-math3:jar:3.2 in the shaded jar.
[INFO] Including org.postgresql:postgresql:jar:42.1.5-SNAPSHOT in the shaded jar.
[INFO] Replacing /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/benchmarks.jar with /home/johnsontm/pgjdbc/git/pgjdbc/ubenchmark/target/pgjdbc-benchmark-42.1.5-SNAPSHOT-shaded.jar
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building PostgreSQL JDBC Driver aggregate 42.1.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ pgjdbc-aggregate ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] PostgreSQL JDBC Driver - JDBC 4.2 .................. SUCCESS [34:53 min]
[INFO] PostgreSQL JDBC Driver - benchmarks ................ SUCCESS [  1.844 s]
[INFO] PostgreSQL JDBC Driver aggregate ................... SUCCESS [  0.000 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 34:55 min
[INFO] Finished at: 2017-09-10T21:18:27-04:00
[INFO] Final Memory: 37M/454M
[INFO] ------------------------------------------------------------------------
johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc$ 

--- [JDK7: pgjdbc-jre7> mvn test] ---

johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc/pgjdbc-jre7$ mvn test
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building PostgreSQL JDBC Driver - JDBC 4.1 42.1.5.jre7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-java) @ postgresql ---
[INFO] Skipping Rule Enforcement.
[INFO] 
[INFO] --- maven-toolchains-plugin:1.1:toolchain (default) @ postgresql ---
[INFO] Required toolchain: jdk [ version='1.7' ]
[INFO] Found matching toolchain for type jdk: JDK[/usr/lib/jvm/jdk1.7.0_80]
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:parse-version (parse-version) @ postgresql ---
[INFO] 
[INFO] --- properties-maven-plugin:1.0-alpha-2:read-project-properties (default) @ postgresql ---
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.1
[INFO] Added MAVEN property mvn.project.version=42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc-parent-poms/pgjdbc-core-parent/pgjdbc-core-prevjre/postgresql
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.1 (JRE 7+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=http://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=[1.7,1.8)
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.7
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.1
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.1
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/..
[INFO] Added MAVEN property mvn.project.property.pgjdbc.clone.location=..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=41
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=jre7
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=false
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.jre7
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.1
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 208 files, copied 0 files, elapsed time 361ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 17 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ postgresql ---
[INFO] Toolchain in maven-compiler-plugin: JDK[/usr/lib/jvm/jdk1.7.0_80]
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessTestSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.1
[INFO] Added MAVEN property mvn.project.version=42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc-parent-poms/pgjdbc-core-parent/pgjdbc-core-prevjre/postgresql
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.1 (JRE 7+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5.jre7-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=http://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=[1.7,1.8)
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.7
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.1
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.1
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/..
[INFO] Added MAVEN property mvn.project.property.pgjdbc.clone.location=..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=41
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=jre7
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=false
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.jre7
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.1
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-test-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 145 files, copied 0 files, elapsed time 162ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/gen-test-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ postgresql ---
[INFO] Toolchain in maven-compiler-plugin: JDK[/usr/lib/jvm/jdk1.7.0_80]
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ postgresql ---
[INFO] Toolchain in maven-surefire-plugin: JDK[/usr/lib/jvm/jdk1.7.0_80]
[INFO] Surefire report directory: /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre7/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Running org.postgresql.test.extensions.ExtensionsTestSuite
Tests run: 5, Failures: 0, Errors: 0, Skipped: 5, Time elapsed: 0.079 sec - in org.postgresql.test.extensions.ExtensionsTestSuite
Running org.postgresql.test.osgi.OsgiTestSuite
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.osgi.OsgiTestSuite
Running org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Running org.postgresql.test.ssl.SslTestSuite
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in org.postgresql.test.ssl.SslTestSuite
Running org.postgresql.test.jdbc2.Jdbc2TestSuite
Using seed = 1505093069256 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093069256 to reproduce the test
Using seed = 1505093069477 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093069477 to reproduce the test
Using seed = 1505093069713 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093069713 to reproduce the test
Using seed = 1505093069956 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093069956 to reproduce the test
Using seed = 1505093070170 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093070170 to reproduce the test
Using seed = 1505093070386 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093070386 to reproduce the test
Using seed = 1505093070595 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093070595 to reproduce the test
Using seed = 1505093070812 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093070812 to reproduce the test
Using seed = 1505093071043 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093071043 to reproduce the test
Using seed = 1505093071247 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093071247 to reproduce the test
Tests run: 4113, Failures: 0, Errors: 0, Skipped: 9, Time elapsed: 112.985 sec - in org.postgresql.test.jdbc2.Jdbc2TestSuite
Running org.postgresql.test.jdbc2.optional.OptionalTestSuite
Tests run: 49, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.966 sec - in org.postgresql.test.jdbc2.optional.OptionalTestSuite
Running org.postgresql.test.jdbc2.AutoRollbackTestSuite
Tests run: 96, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.555 sec - in org.postgresql.test.jdbc2.AutoRollbackTestSuite
Running org.postgresql.test.socketfactory.SocketFactoryTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec - in org.postgresql.test.socketfactory.SocketFactoryTestSuite
Running org.postgresql.test.hostchooser.MultiHostTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.hostchooser.MultiHostTestSuite
Running org.postgresql.test.jdbc4.Jdbc4TestSuite
Tests run: 117, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.407 sec - in org.postgresql.test.jdbc4.Jdbc4TestSuite
Running org.postgresql.test.jdbc4.jdbc41.Jdbc41TestSuite
JUnit used sun.misc.Launcher$AppClassLoader@5ce345c2
SeparateClassLoaderInvokeMethod used sun.misc.Launcher$AppClassLoader@5ce345c2
se.jiderhamn.classloader.RedefiningClassLoader[org.postgresql.test.jdbc4.jdbc41.SharedTimerClassLoaderLeakTest.sharedTimerDoesNotCauseLeak]@496246a9 is being finalized
Tests run: 50, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 1.141 sec - in org.postgresql.test.jdbc4.jdbc41.Jdbc41TestSuite
Running org.postgresql.test.xa.XATestSuite
Tests run: 12, Failures: 0, Errors: 0, Skipped: 12, Time elapsed: 0.062 sec - in org.postgresql.test.xa.XATestSuite
Running org.postgresql.test.jdbc3.Jdbc3TestSuite
Tests run: 159, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 2.451 sec - in org.postgresql.test.jdbc3.Jdbc3TestSuite
Running org.postgresql.replication.ReplicationTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.005 sec - in org.postgresql.replication.ReplicationTestSuite

Results :

Tests run: 4612, Failures: 0, Errors: 0, Skipped: 33

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:06 min
[INFO] Finished at: 2017-09-10T21:24:40-04:00
[INFO] Final Memory: 18M/411M
[INFO] ------------------------------------------------------------------------
johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc/pgjdbc-jre7$ 

--- [JDK6: pgjdbc-jre6> mvn test] ---

johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc/pgjdbc-jre6$ mvn test
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building PostgreSQL JDBC Driver - JDBC 4.0 42.1.5.jre6-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-java) @ postgresql ---
[INFO] Skipping Rule Enforcement.
[INFO] 
[INFO] --- maven-toolchains-plugin:1.1:toolchain (default) @ postgresql ---
[INFO] Required toolchain: jdk [ version='1.6' ]
[INFO] Found matching toolchain for type jdk: JDK[/usr/lib/jvm/jdk1.6.0_45]
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:parse-version (parse-version) @ postgresql ---
[INFO] 
[INFO] --- properties-maven-plugin:1.0-alpha-2:read-project-properties (default) @ postgresql ---
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.0
[INFO] Added MAVEN property mvn.project.version=42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc-parent-poms/pgjdbc-core-parent/pgjdbc-core-prevjre/postgresql
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.0 (JRE 6+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=http://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=[1.6,1.7)
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.6
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.0
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.0
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/..
[INFO] Added MAVEN property mvn.project.property.pgjdbc.clone.location=..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=40
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=jre6
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=false
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.jre6
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.0
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 208 files, copied 0 files, elapsed time 344ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 17 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ postgresql ---
[INFO] Toolchain in maven-compiler-plugin: JDK[/usr/lib/jvm/jdk1.6.0_45]
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- jcp:6.0.1:preprocess (preprocessTestSources) @ postgresql ---
[INFO] Added MAVEN property mvn.project.name=PostgreSQL JDBC Driver - JDBC 4.0
[INFO] Added MAVEN property mvn.project.version=42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.url=https://github.com/pgjdbc/pgjdbc-parent-poms/pgjdbc-core-parent/pgjdbc-core-prevjre/postgresql
[INFO] Added MAVEN property mvn.project.packaging=bundle
[INFO] Added MAVEN property mvn.project.modelversion=4.0.0
[INFO] Added MAVEN property mvn.project.inceptionyear=
[INFO] Added MAVEN property mvn.project.id=org.postgresql:postgresql:bundle:42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.description=Java JDBC 4.0 (JRE 6+) driver for PostgreSQL database
[INFO] Added MAVEN property mvn.project.artifact.id=org.postgresql:postgresql:bundle:42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.artifactid=postgresql
[INFO] Added MAVEN property mvn.project.artifact.baseversion=42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.artifact.dependencyconflictid=org.postgresql:postgresql:bundle
[INFO] Added MAVEN property mvn.project.artifact.downloadurl=
[INFO] Added MAVEN property mvn.project.artifact.groupid=org.postgresql
[INFO] Added MAVEN property mvn.project.artifact.scope=
[INFO] Added MAVEN property mvn.project.artifact.type=bundle
[INFO] Added MAVEN property mvn.project.artifact.version=42.1.5.jre6-SNAPSHOT
[INFO] Added MAVEN property mvn.project.build.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target
[INFO] Added MAVEN property mvn.project.build.defaultgoal=
[INFO] Added MAVEN property mvn.project.build.outputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/classes
[INFO] Added MAVEN property mvn.project.build.scriptsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/src/main/scripts
[INFO] Added MAVEN property mvn.project.build.sourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/main/java
[INFO] Added MAVEN property mvn.project.build.testoutputdirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/test-classes
[INFO] Added MAVEN property mvn.project.build.testsourcedirectory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Added MAVEN property mvn.project.organization.name=PostgreSQL Global Development Group
[INFO] Added MAVEN property mvn.project.organization.url=http://jdbc.postgresql.org/
[INFO] Added MAVEN property mvn.project.activeprofiles=
[INFO] Added MAVEN property mvn.project.property.postgresql.enforce.jdk.version=[1.6,1.7)
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.test.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-test-src
[INFO] Added MAVEN property mvn.project.property.loggerlevel=OFF
[INFO] Added MAVEN property mvn.project.property.javac.target=1.6
[INFO] Added MAVEN property mvn.project.property.postgresql.driver.fullversion=PostgreSQL JDBC4.0
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version=4.0
[INFO] Added MAVEN property mvn.project.property.unzip.jdk.ant.build.xml=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/unzip-jdk-ant.xml
[INFO] Added MAVEN property mvn.project.property.loggerfile=target/pgjdbc-tests.log
[INFO] Added MAVEN property mvn.project.property.parsedversion.minorversion=1
[INFO] Added MAVEN property mvn.project.property.project.build.sourceencoding=UTF-8
[INFO] Added MAVEN property mvn.project.property.build.properties.relative.path=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/..
[INFO] Added MAVEN property mvn.project.property.pgjdbc.clone.location=..
[INFO] Added MAVEN property mvn.project.property.privilegedpassword=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.waffleenabled=true
[INFO] Added MAVEN property mvn.project.property.skip.assembly=false
[INFO] Added MAVEN property mvn.project.property.protocolversion=0
[INFO] Added MAVEN property mvn.project.property.postgresql.preprocessed.sources.directory=/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-src
[INFO] Added MAVEN property mvn.project.property.osgienabled=true
[INFO] Added MAVEN property mvn.project.property.preparethreshold=5
[INFO] Added MAVEN property mvn.project.property.password=***** [hidden because may contain private info]
[INFO] Added MAVEN property mvn.project.property.jdbc.specification.version.nodot=40
[INFO] Added MAVEN property mvn.project.property.username=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.buildnumber=0
[INFO] Added MAVEN property mvn.project.property.server=localhost
[INFO] Added MAVEN property mvn.project.property.port=5432
[INFO] Added MAVEN property mvn.project.property.template.default.pg.port=5432
[INFO] Added MAVEN property mvn.project.property.parsedversion.qualifier=jre6
[INFO] Added MAVEN property mvn.project.property.waffle-jna.version=1.7.5
[INFO] Added MAVEN property mvn.project.property.skip.unzip-jdk-src=false
[INFO] Added MAVEN property mvn.project.property.database=test
[INFO] Added MAVEN property mvn.project.property.parsedversion.incrementalversion=5
[INFO] Added MAVEN property mvn.project.property.sspiusername=testsspi
[INFO] Added MAVEN property mvn.project.property.privilegeduser=postgres
[INFO] Added MAVEN property mvn.project.property.parsedversion.majorversion=42
[INFO] Added MAVEN property mvn.project.property.parsedversion.osgiversion=42.1.5.jre6
[INFO] Added MAVEN property mvn.project.property.postgresql.jdbc.spec=JDBC4.0
[INFO] Added MAVEN property mvn.project.property.argline=-Xmx512m
[INFO] Preprocess sources : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java
[INFO] Preprocess destination : /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-test-src
[INFO] -----------------------------------------------------------------
[INFO] Completed, preprocessed 145 files, copied 0 files, elapsed time 175ms
[INFO] A Compile source root has been removed from the root list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc/src/test/java]
[INFO] The New compile source root has been added into the list [/home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/gen-test-src]
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ postgresql ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ postgresql ---
[INFO] Toolchain in maven-compiler-plugin: JDK[/usr/lib/jvm/jdk1.6.0_45]
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ postgresql ---
[INFO] Toolchain in maven-surefire-plugin: JDK[/usr/lib/jvm/jdk1.6.0_45]
[INFO] Surefire report directory: /home/johnsontm/pgjdbc/git/pgjdbc/pgjdbc-jre6/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Running org.postgresql.test.extensions.ExtensionsTestSuite
Tests run: 5, Failures: 0, Errors: 0, Skipped: 5, Time elapsed: 0.063 sec - in org.postgresql.test.extensions.ExtensionsTestSuite
Running org.postgresql.test.osgi.OsgiTestSuite
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.osgi.OsgiTestSuite
Running org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Skipping SingleCertSocketFactoryTests. To enable set the property testsinglecertfactory=true in the ssltest.properties file.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in org.postgresql.test.ssl.SingleCertValidatingFactoryTestSuite
Running org.postgresql.test.ssl.SslTestSuite
Skipping ssloff8.
Skipping sslhostnossl8.
Skipping ssloff9.
Skipping sslhostnossl9.
Skipping sslhostgh8.
Skipping sslhostgh9.
Skipping sslhostbh8.
Skipping sslhostbh9.
Skipping sslhostsslgh8.
Skipping sslhostsslgh9.
Skipping sslhostsslbh8.
Skipping sslhostsslbh9.
Skipping sslhostsslcertgh8.
Skipping sslhostsslcertgh9.
Skipping sslhostsslcertbh8.
Skipping sslhostsslcertbh9.
Skipping sslcertgh8.
Skipping sslcertgh9.
Skipping sslcertbh8.
Skipping sslcertbh9.
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.ssl.SslTestSuite
Running org.postgresql.test.jdbc2.Jdbc2TestSuite
Using seed = 1505093537468 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093537468 to reproduce the test
Using seed = 1505093537692 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093537692 to reproduce the test
Using seed = 1505093537940 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093537940 to reproduce the test
Using seed = 1505093538168 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093538168 to reproduce the test
Using seed = 1505093538389 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093538389 to reproduce the test
Using seed = 1505093538623 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093538623 to reproduce the test
Using seed = 1505093538839 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093538839 to reproduce the test
Using seed = 1505093539075 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093539075 to reproduce the test
Using seed = 1505093539294 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093539294 to reproduce the test
Using seed = 1505093539501 for StrangeInputStream. Set -DStrangeInputStream.seed=1505093539501 to reproduce the test
Tests run: 4113, Failures: 0, Errors: 0, Skipped: 9, Time elapsed: 114.691 sec - in org.postgresql.test.jdbc2.Jdbc2TestSuite
Running org.postgresql.test.jdbc2.optional.OptionalTestSuite
Tests run: 49, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.941 sec - in org.postgresql.test.jdbc2.optional.OptionalTestSuite
Running org.postgresql.test.jdbc2.AutoRollbackTestSuite
Tests run: 96, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.653 sec - in org.postgresql.test.jdbc2.AutoRollbackTestSuite
Running org.postgresql.test.socketfactory.SocketFactoryTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in org.postgresql.test.socketfactory.SocketFactoryTestSuite
Running org.postgresql.test.hostchooser.MultiHostTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.postgresql.test.hostchooser.MultiHostTestSuite
Running org.postgresql.test.jdbc4.Jdbc4TestSuite
Tests run: 117, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.138 sec - in org.postgresql.test.jdbc4.Jdbc4TestSuite
Running org.postgresql.test.xa.XATestSuite
Tests run: 12, Failures: 0, Errors: 0, Skipped: 12, Time elapsed: 0.05 sec - in org.postgresql.test.xa.XATestSuite
Running org.postgresql.test.jdbc3.Jdbc3TestSuite
Tests run: 159, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 2.579 sec - in org.postgresql.test.jdbc3.Jdbc3TestSuite
Running org.postgresql.replication.ReplicationTestSuite
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.005 sec - in org.postgresql.replication.ReplicationTestSuite

Results :

Tests run: 4562, Failures: 0, Errors: 0, Skipped: 32

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:07 min
[INFO] Finished at: 2017-09-10T21:32:27-04:00
[INFO] Final Memory: 18M/417M
[INFO] ------------------------------------------------------------------------
johnsontm@dellxps139360:~/pgjdbc/git/pgjdbc/pgjdbc-jre6$ 
```

Thanks for your consideration of this patch.

---

From: "sehrope (@sehrope)" <[email-masked]>
Date: Mon, 11 Sep 2017 09:51:18 +0000

Why is this necessary? `TimestampUtils` is local to each connection and your test is accessing the same connection from two different threads with no external synchronization. That type of non-synchronized access is likely to encounter other issues as well. Connection should not be used concurrently for query execution by multiple threads.

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Mon, 11 Sep 2017 10:07:37 +0000

>That type of non-synchronized access is likely to encounter other issues as well.

I agree.

>Connection should not be used concurrently for query execution by multiple threads.

@sehrope , the thing is pgjdbc [claimed](https://jdbc.postgresql.org/documentation/head/thread.html) to be fully thread-safe:

> doc: The PostgreSQL™ JDBC driver is thread safe

See the suggested change for documentation: https://github.com/pgjdbc/pgjdbc/pull/928

---

From: "sehrope (@sehrope)" <[email-masked]>
Date: Mon, 11 Sep 2017 10:47:02 +0000

@vlsi Wow I didn't know the docs said that! Yes that's blatantly false and should be removed from the docs.

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Mon, 11 Sep 2017 10:53:42 +0000

>Wow I didn't know the docs said that! Yes that's blatantly false and should be removed from the docs.

On the other hand, threading issues (e.g. reusing a connection across threads) are quite common, so adding some safety still makes sense.

---

From: "sehrope (@sehrope)" <[email-masked]>
Date: Mon, 11 Sep 2017 11:10:24 +0000

> On the other hand, threading issues (e.g. reusing a connection across threads) are quite common, so adding some safety still makes sense.

Not if it's going to be for something that's internal or not required to be safe. Otherwise it's just added complexity and overhead.

Unless the entire usage of a Connection is thread safe there's no real gain in being partially thread safe anyway. If anything it's scarier as other unhandled edge cases would be encountered.

Better to be explicit that it's not intended to be used by multiple threads (outside of say `.cancel()`) and not deal with any of this.

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Mon, 11 Sep 2017 11:15:02 +0000

agreed, lets just remove the notion that there is any thread safety in the driver

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Mon, 11 Sep 2017 11:17:09 +0000

> lets just remove the notion that there is any thread safety in the driver

There's safety for `.cancel()`.
There's a patch for `.getWarnings()` safety

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Mon, 11 Sep 2017 11:20:34 +0000

Fair enough. But lets not encourage the notion that this can be used in any multi-threaded application.

---

From: "tordmjohnson (@tordmjohnson)" <[email-masked]>
Date: Mon, 11 Sep 2017 14:45:48 +0000

OK. I completely understand nobody wants to go down the 'slippery slope' of trying to make ``Connection`` entirely-thread safe. I just thought this was a simple enough change, and consistent with already existing synchronization in place for `TimestampUtils` methods like `toTimestamp(Calendar,String)`, `toDate(Calendar,String)`, `toTime(Calendar,String)`, etc., which _do_ ensure the driver is thread-safe (with respect to ``Calendar``), at least when not using binary transfer.

If you're truly only going to change the documentation, then perhaps the existing synchronization in ``TimestampUtils`` should be removed instead, to ensure identical (mis)behavior regardless of whether using binary transfer or not.

---

From: "jorsol (@jorsol)" <[email-masked]>
Date: Mon, 11 Sep 2017 16:35:45 +0000

Well, thread-safety in JDBC is something that has [been](https://stackoverflow.com/questions/18897092/sharing-a-jdbc-connection-across-threads) [asked](https://stackoverflow.com/questions/9428573/is-it-safe-to-use-a-static-java-sql-connection-instance-in-a-multithreaded-syste) [many](https://stackoverflow.com/questions/1209693/is-mysql-connector-jdbc-thread-safe), [many](https://stackoverflow.com/questions/1531073/is-java-sql-connection-thread-safe) [times](https://stackoverflow.com/questions/1215979/jdbc-and-threading).

The general consensus is that you should NOT share connections across threads, and in my opinion, a connection pool should be more than enough for most cases.

So the question here should be if the 95% (or more) of the use cases works without synchronization/thread-safety, does it's worth the performance implications to cover the 5% of the cases?

The specification don't really mention that JDBC is thread-safe, or at least not in the quick search I did for "thread". Maybe in the early versions of the specification jdbc 1.2 (1997) but not anymore, and since the implementation cover jdbc 4.0+ we should not claim it's thread-safe.

It makes sense that some methods like Statement.cancel() which explicitly said in the javadoc: 

> This method can be used by one thread to cancel a statement that is being executed by another thread.

Should be thread-safe, but beyond that, it's implementation dependent.

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Mon, 11 Sep 2017 18:43:14 +0000

>The general consensus is that you should NOT share connections across threads, and in my opinion, a connection pool should be more than enough for most cases.

Fully agree.

> Should be thread-safe, but beyond that, it's implementation dependent.

I agree, however it turns out lots of uses depend on `Statement.getWarnings` thread safety. E.g. https://github.com/pgjdbc/pgjdbc/issues/927

>So the question here should be if the 95% (or more) of the use cases works without synchronization/thread-safety, does it's worth the performance implications to cover the 5% of the cases?

I think added synchronization would not matter much performance-wise. Nor it would matter support-wise: some of the methods have already been synchronized, so it could make sense to make them aligned.

---

From: "jorsol (@jorsol)" <[email-masked]>
Date: Mon, 11 Sep 2017 20:20:47 +0000

> I agree, however it turns out lots of uses depend on Statement.getWarnings thread safety. E.g. #927 

Fully agree, as I said, some methods require thread safety, and it's fine for these, but not necessarily for all.

> I think added synchronization would not matter much performance-wise. Nor it would matter support-wise: some of the methods have already been synchronized, so it could make sense to make them align…

I haven't made any performance measure of performance implications of synchronization, maybe new JVM works better and the "synchronization is expensive" no longer apply, so if this is the case, then it make sense to have a thread-safety driver.

Some quotes from _Java Concurrency in Practice_:

> The JDBC specification does not require that Connection objects be thread-safe.

> Since JDBC connections may not be thread-safe, a multithreaded application that uses a global connection without additional coordination is not thread-safe either.

> Many official Java technology specifications, such as servlets and JDBC, woefully underdocument their thread safety promises and requirements.

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Fri, 20 Oct 2017 10:44:44 +0000

<img width="1241" alt="getsharedcalendar" src="https://user-images.githubusercontent.com/213894/31817484-d06ff3fe-b59c-11e7-86a8-d8b26b9fb927.png">

@tordmjohnson , would you please treat the other callers of `getSharedCalendar` as well?
`org.postgresql.jdbc.PgResultSet#getDefaultCalendar`
`org.postgresql.jdbc.PgPreparedStatement#getDefaultCalendar`

---

From: "tordmjohnson (@tordmjohnson)" <[email-masked]>
Date: Fri, 20 Oct 2017 13:49:13 +0000

> Would you please treat PgResultSet#getDefaultCalendar and PgPreparedStatement#getDefaultCalendar?

I'd be happy to, @vlsi, but I'm not sure I understand exactly what you're asking for.

Are you simply asking that `PgResultSet#getDefaultCalendar()` and `PgPreparedStatement#getDefaultCalendar()` synchronize over the monitor for modifying `TimestampUtils#calendarWithUserTz` (the `TimestampUtils` instance itself), since they may indirectly set the time zone on the shared calendar? That is, something like:

```
   private Calendar getDefaultCalendar() {
      TimestampUtils timestampUtils = connection.getTimestampUtils();
      synchronized (timestampUtils) {
         ...
      }
      ...
   }
```

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Fri, 20 Oct 2017 15:20:44 +0000

@tordmjohnson , the idea is as follows: shared calendar should not be used outside of a synchronized context.

Things like the following should be simple. I bet just passing `null` should be enough (and remove the `if`)
```
    if (cal == null) {
      cal = getDefaultCalendar();
    }
    bindString(i, connection.getTimestampUtils().toString(cal, d), Oid.UNSPECIFIED);
```

org.postgresql.jdbc.PgResultSet#getDefaultCalendar is somewhat more involved.
However idea is the same: since `Calendar` is not thread-safe, there should be some synchronization

---

From: "vlsi (@vlsi)" <[email-masked]>
Date: Fri, 20 Oct 2017 15:22:52 +0000

A conclusion: `org.postgresql.jdbc.TimestampUtils#getSharedCalendar` should be private to avoid leakage of `Calendar` to prevent non-synchronized access to the calendar in question

---

From: "tordmjohnson (@tordmjohnson)" <[email-masked]>
Date: Sun, 22 Oct 2017 01:46:36 +0000

OK, I've made `TimestampUtils#getSharedCalendar(TimeZone)` private, and pushed all the dependent code from `PgResultSet` and `PgPreparedStatement` down into `TimestampUtils`. This was an initial, more-or-less straight forward transformation, and could probably use some refactoring, but didn't want to mix objectives with this initial set of changes.

For example, it seems unnecessary to keep a second cached `defaultTimeZone` in `TimestampUtils`, but it wasn't exactly clear to me why it was being cleared after some calls, such as from `PgPreparedStatement#executeBatch()`.

Would you like me to continue, to go on and refactor a bit, such as removing the seemingly redundant `TimestampUtils.defaultTimeZone`? Or should I just stop here? Thanks for any guidance.

---

From: "marcmuel (@marcmuel)" <[email-masked]>
Date: Fri, 08 Oct 2021 08:17:39 +0000

How is the state of this change? Will it be avalible within the next releases?

---

From: "marcmuel (@marcmuel)" <[email-masked]>
Date: Fri, 08 Oct 2021 08:31:57 +0000

I think the better approach would be to give Pgconnection, PgPreparedStatement and PgResultSet his dedicated instance of TimestampUtil. So, you don’t have to synchronize it and there is no danger of deadlocks. It's only a little more of memory and with lazy loading unnecessary creation can be omitted.
I also think this would be a great benefit to have "partial" thread safety.

So, Microsoft SQL jdbc for example states:
[SQLServerConnection is not thread-safe, however multiple statements created from a single connection can be processing simultaneously in concurrent threads.](https://docs.microsoft.com/en-us/sql/connect/jdbc/reference/sqlserverconnection-class?view=sql-server-ver15)

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Fri, 08 Oct 2021 09:10:37 +0000

I will have a look at this. As soon as we get through releasing without JAVA 6 and 7.

Thanks

---

From: "matthias-mueller (@matthias-mueller)" <[email-masked]>
Date: Tue, 18 Mar 2025 19:08:22 +0000

> [SQLServerConnection is not thread-safe, however multiple statements created from a single connection can be processing simultaneously in concurrent threads.](https://docs.microsoft.com/en-us/sql/c…

I just came across this while looking for more specific documentation on the behaviour of the postgresql driver when result sets from a single connection are processed by multiple threads. The last comment is from 2021. Are the proposed changes now obsolete?

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Tue, 18 Mar 2025 22:38:18 +0000

> I just came across this while looking for more specific documentation on the behaviour of the postgresql driver when result sets from a single connection are processed by multiple threads. The last…

It looks like TimestampUtils is no longer a static class. What issues are you running into?

---

From: "matthias-mueller (@matthias-mueller)" <[email-masked]>
Date: Wed, 19 Mar 2025 06:54:19 +0000

No practical issues, just research. This thread discusses some concurrency issues of the postgresql jdbc driver related to Date/Time/Timestamp and the PR is still open without a hint that the underlying issue has been resolved in the meantime. Hence my question.

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Wed, 19 Mar 2025 09:42:20 +0000

In general you should not consider JDBC drivers to be thread safe.

---

From: "matthias-mueller (@matthias-mueller)" <[email-masked]>
Date: Wed, 19 Mar 2025 09:55:15 +0000

> In general you should not consider JDBC drivers to be thread safe.

Jepp, I know. However, I have a use case where this property 

> [...] multiple statements created from a single connection can be processing simultaneously in concurrent threads.

would be extremely useful. - And I would like to get a reliable conclusion / statement whether this behaviour is also guaranteed by pgjdbc.

---

From: "sehrope (@sehrope)" <[email-masked]>
Date: Wed, 19 Mar 2025 12:13:05 +0000

This driver is not thread safe outside of a very narrow set of explicitly listed methods, most notably `.cancel()`. We have that listed in our docs: https://jdbc.postgresql.org/documentation/thread/

Outside those narrow exceptions, sharing any driver objects (Connections, Statements, ResultsSets, etc) is not supported without external synchronization.

---

From: "matthias-mueller (@matthias-mueller)" <[email-masked]>
Date: Thu, 20 Mar 2025 07:03:08 +0000

Thanks for the replies - I will dig deeper into this. May I ask why you are keeping this PR open and tag it as waiting-for-changes? Looks like it is never going to be merged and it is no longer work in progress.

---

From: "davecramer (@davecramer)" <[email-masked]>
Date: Thu, 20 Mar 2025 10:30:15 +0000

Unlikely to merge