From eb23940996f348e0c72e9a6d3fbb86ae47639558 Mon Sep 17 00:00:00 2001 From: catbref Date: Sat, 13 Feb 2021 10:02:00 +0000 Subject: [PATCH] Fix potential NPE when trying to obtain opportunistic database connection. Could have affected: Controller.deleteExpiredTransactions() Network.getConnectablePeer() Network.opportunisticMergePeers() Network.prunePeers() Symptoms: 2021-02-12 16:46:06 WARN NetworkProcessor:152 - [1556] exception while trying to produce task java.lang.NullPointerException: null at org.qortal.repository.hsqldb.HSQLDBRepository.(HSQLDBRepository.java:92) ~[qortal.jar:1.4.1] at org.qortal.repository.hsqldb.HSQLDBRepositoryFactory.tryRepository(HSQLDBRepositoryFactory.java:97) ~[qortal.jar:1.4.1] at org.qortal.repository.RepositoryManager.tryRepository(RepositoryManager.java:33) ~[qortal.jar:1.4.1] at org.qortal.network.Network.getConnectablePeer(Network.java:525) ~[qortal.jar:1.4.1] --- .../qortal/repository/hsqldb/HSQLDBRepositoryFactory.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepositoryFactory.java b/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepositoryFactory.java index 81bf320b..c2be7074 100644 --- a/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepositoryFactory.java +++ b/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepositoryFactory.java @@ -94,7 +94,11 @@ public class HSQLDBRepositoryFactory implements RepositoryFactory { @Override public Repository tryRepository() throws DataException { try { - return new HSQLDBRepository(this.tryConnection()); + Connection connection = this.tryConnection(); + if (connection == null) + return null; + + return new HSQLDBRepository(connection); } catch (SQLException e) { throw new DataException("Repository instantiation error", e); }