This is an automated email from the ASF dual-hosted git repository.

smolnar82 pushed a commit to branch knox_idf
in repository https://gitbox.apache.org/repos/asf/knox.git

commit dfdd98f0d3710c26ab2740dd63f6f21e4ae1644b
Author: hsheinblatt <[email protected]>
AuthorDate: Thu Jul 23 02:48:43 2026 -0700

    KNOX-3390 - Address comments in PR 1315 (#1320)
---
 .../JdbcTrustedOidcIssuerService.java              |  1 +
 .../TrustedOidcIssuerDatabase.java                 | 10 ------
 .../JdbcTrustedOidcIssuerServiceTest.java          | 40 ++++++++++++++++++++++
 pom.xml                                            |  2 +-
 4 files changed, 42 insertions(+), 11 deletions(-)

diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
 
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
index 0b1e0a31e..95246c080 100644
--- 
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
+++ 
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerService.java
@@ -195,6 +195,7 @@ public class JdbcTrustedOidcIssuerService implements 
TrustedOidcIssuerService {
       registrySnapshot.set(Collections.unmodifiableMap(fresh));
     } catch (Exception e) {
       LOG.errorReloadingRegistrySnapshot(e.getMessage(), e);
+      throw new RuntimeException("Error reloading trusted OIDC issuer registry 
snapshot", e);
     }
   }
 }
diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
 
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
index 92d0fd5c5..05b9d4f72 100644
--- 
a/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
+++ 
b/gateway-server/src/main/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/TrustedOidcIssuerDatabase.java
@@ -44,8 +44,6 @@ class TrustedOidcIssuerDatabase extends KnoxDatabase {
       "DELETE FROM " + TABLE_NAME + " WHERE issuer_url = ?";
   private static final String SELECT_ALL_SQL =
       "SELECT issuer_url, dynamic_jwks, cluster_name, registered_at, 
registered_by FROM " + TABLE_NAME;
-  private static final String COUNT_SQL =
-      "SELECT COUNT(*) FROM " + TABLE_NAME;
 
   TrustedOidcIssuerDatabase(DataSource dataSource, String dbType) throws 
Exception {
     super(dataSource);
@@ -90,12 +88,4 @@ class TrustedOidcIssuerDatabase extends KnoxDatabase {
     }
     return result;
   }
-
-  int count() throws SQLException {
-    try (Connection connection = dataSource.getConnection();
-         PreparedStatement ps = connection.prepareStatement(COUNT_SQL);
-         ResultSet rs = ps.executeQuery()) {
-      return rs.next() ? rs.getInt(1) : 0;
-    }
-  }
 }
diff --git 
a/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
 
b/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
index 03bc54f76..9a7a9673f 100644
--- 
a/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
+++ 
b/gateway-server/src/test/java/org/apache/knox/gateway/services/knoxidf/trustedoidcissuer/JdbcTrustedOidcIssuerServiceTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.knox.gateway.services.knoxidf.trustedoidcissuer;
 
+import org.apache.commons.lang3.reflect.FieldUtils;
 import org.apache.knox.gateway.config.GatewayConfig;
 import org.apache.knox.gateway.config.impl.GatewayConfigImpl;
 import org.apache.knox.gateway.database.AbstractDataSourceFactory;
@@ -279,6 +280,45 @@ public class JdbcTrustedOidcIssuerServiceTest {
     service.refreshJwksUri("https://unknown.example.com";); // must not throw
   }
 
+  // ------------------------------------------------------------------
+  // SQL exception error paths
+  // ------------------------------------------------------------------
+
+  @Test(expected = RuntimeException.class)
+  public void testDeregisterSqlExceptionOnDeleteThrowsRuntimeException() 
throws Exception {
+    final TrustedOidcIssuerDatabase mockDb = 
EasyMock.createMock(TrustedOidcIssuerDatabase.class);
+    mockDb.delete(EasyMock.anyString());
+    EasyMock.expectLastCall().andThrow(new java.sql.SQLException("delete 
failed"));
+    EasyMock.replay(mockDb);
+    FieldUtils.writeField(service, "database", mockDb, true);
+
+    service.deregister("https://any.example.com";);
+  }
+
+  @Test(expected = RuntimeException.class)
+  public void testRegisterSqlExceptionOnSnapshotReloadPropagates() throws 
Exception {
+    final TrustedOidcIssuerDatabase mockDb = 
EasyMock.createMock(TrustedOidcIssuerDatabase.class);
+    mockDb.insert(EasyMock.anyObject(TrustedOidcIssuer.class));
+    EasyMock.expectLastCall();
+    EasyMock.expect(mockDb.selectAll()).andThrow(new 
java.sql.SQLException("selectAll failed"));
+    EasyMock.replay(mockDb);
+    FieldUtils.writeField(service, "database", mockDb, true);
+
+    service.register(issuer("https://any.example.com";, false));
+  }
+
+  @Test(expected = RuntimeException.class)
+  public void testDeregisterSqlExceptionOnSnapshotReloadPropagates() throws 
Exception {
+    final TrustedOidcIssuerDatabase mockDb = 
EasyMock.createMock(TrustedOidcIssuerDatabase.class);
+    mockDb.delete(EasyMock.anyString());
+    EasyMock.expectLastCall();
+    EasyMock.expect(mockDb.selectAll()).andThrow(new 
java.sql.SQLException("selectAll failed"));
+    EasyMock.replay(mockDb);
+    FieldUtils.writeField(service, "database", mockDb, true);
+
+    service.deregister("https://any.example.com";);
+  }
+
   // ------------------------------------------------------------------
   // Init guard
   // ------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 406496f18..c0cd5a64e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -259,8 +259,8 @@
         <mina.version>2.2.8</mina.version>
         <netty.version>4.1.135.Final</netty.version>
         <nimbus-jose-jwt.version>10.9.1</nimbus-jose-jwt.version>
-        <oauth2-oidc-sdk.version>11.37.2</oauth2-oidc-sdk.version>
         <nodejs.version>v22.20.0</nodejs.version>
+        <oauth2-oidc-sdk.version>11.37.2</oauth2-oidc-sdk.version>
         <okhttp.version>4.12.0</okhttp.version>
         <opensaml.version>5.2.2</opensaml.version>
         <pac4j.version>6.5.3</pac4j.version>

Reply via email to