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

dineshkumar pushed a commit to branch sandbox/dineshkumar-yadav/RANGER-5465
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 0f79c4280c81ccf00f041b9589814202be528846
Author: Dineshkumar Yadav <[email protected]>
AuthorDate: Mon Feb 2 16:26:23 2026 +0530

    RANGER-5465: Handle upgrade failure caused by the Java patch during the 
Ranger DB upgrade
---
 .../main/java/org/apache/ranger/db/XXSecurityZoneDao.java | 15 +++++++++++++++
 .../PatchPreSql_057_ForUpdateToUniqueGUID_J10052.java     |  7 ++++---
 ...ql_058_ForUpdateToUniqueResoureceSignature_J10053.java |  8 ++++----
 .../src/main/resources/META-INF/jpa_named_queries.xml     |  6 ++++++
 .../TestPatchPreSql_057_ForUpdateToUniqueGUID_J10052.java |  2 +-
 5 files changed, 30 insertions(+), 8 deletions(-)

diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneDao.java
index 9ff812d60..9f8e6ea5f 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneDao.java
@@ -173,4 +173,19 @@ public List<XXSecurityZone> getAllZoneIdNames() {
 
         return securityZoneList;
     }
+
+    public String findZoneNameByZoneId(Long zoneId) {
+        if (zoneId == null) {
+            return null;
+        }
+
+        try {
+            return getEntityManager()
+                    .createNamedQuery("XXSecurityZone.findZoneNameByZoneId", 
String.class)
+                    .setParameter("zoneId", zoneId)
+                    .getSingleResult();
+        } catch (NoResultException e) {
+            return null;
+        }
+    }
 }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
index 8282db56a..30025181e 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
@@ -18,6 +18,7 @@
 package org.apache.ranger.patch;
 
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ranger.authorization.utils.JsonUtils;
 import org.apache.ranger.biz.ServiceDBStore;
 import org.apache.ranger.common.GUIDUtil;
@@ -179,10 +180,10 @@ private RangerPolicy getPolicy(final XXPolicy xPolicy) {
                 ret.setVersion(xPolicy.getVersion());
                 ret.setPolicyType(xPolicy.getPolicyType() == null ? 
RangerPolicy.POLICY_TYPE_ACCESS : xPolicy.getPolicyType());
 
-                XXSecurityZone xSecurityZone = 
daoMgr.getXXSecurityZoneDao().findByZoneId(xPolicy.getZoneId());
+                String securityZoneName = 
daoMgr.getXXSecurityZoneDao().findZoneNameByZoneId(xPolicy.getZoneId());
 
-                if (xSecurityZone != null) {
-                    ret.setZoneName(xSecurityZone.getName());
+                if (StringUtils.isNotEmpty(securityZoneName)) {
+                    ret.setZoneName(securityZoneName);
                 }
             }
         } else {
diff --git 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_058_ForUpdateToUniqueResoureceSignature_J10053.java
 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_058_ForUpdateToUniqueResoureceSignature_J10053.java
index 4ca27766e..8595b1d0b 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_058_ForUpdateToUniqueResoureceSignature_J10053.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchPreSql_058_ForUpdateToUniqueResoureceSignature_J10053.java
@@ -18,6 +18,7 @@
 package org.apache.ranger.patch;
 
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ranger.authorization.utils.JsonUtils;
 import org.apache.ranger.biz.ServiceDBStore;
 import org.apache.ranger.common.RangerFactory;
@@ -25,7 +26,6 @@
 import org.apache.ranger.db.XXPolicyLabelMapDao;
 import org.apache.ranger.entity.XXPolicy;
 import org.apache.ranger.entity.XXPolicyLabelMap;
-import org.apache.ranger.entity.XXSecurityZone;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerPolicyResourceSignature;
 import org.apache.ranger.util.CLIUtil;
@@ -223,10 +223,10 @@ private RangerPolicy getPolicy(final XXPolicy xPolicy) {
                 ret.setVersion(xPolicy.getVersion());
                 ret.setPolicyType(xPolicy.getPolicyType() == null ? 
RangerPolicy.POLICY_TYPE_ACCESS : xPolicy.getPolicyType());
 
-                XXSecurityZone xSecurityZone = 
daoMgr.getXXSecurityZoneDao().findByZoneId(xPolicy.getZoneId());
+                String securityZoneName = 
daoMgr.getXXSecurityZoneDao().findZoneNameByZoneId(xPolicy.getZoneId());
 
-                if (xSecurityZone != null) {
-                    ret.setZoneName(xSecurityZone.getName());
+                if (StringUtils.isNotEmpty(securityZoneName)) {
+                    ret.setZoneName(securityZoneName);
                 }
             }
         } else {
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml 
b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index 30db0eacb..7931bb1ab 100755
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -1886,6 +1886,12 @@
                </query>
        </named-query>
 
+       <named-query name="XXSecurityZone.findZoneNameByZoneId">
+               <query>
+                       SELECT obj.name FROM XXSecurityZone obj WHERE obj.id = 
:zoneId
+               </query>
+       </named-query>
+
     <named-query name="XXGlobalState.findByStateId">
         <query>
             select obj from XXGlobalState obj where obj.id = :stateId
diff --git 
a/security-admin/src/test/java/org/apache/ranger/patch/TestPatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
 
b/security-admin/src/test/java/org/apache/ranger/patch/TestPatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
index 856443e1b..c75f794af 100644
--- 
a/security-admin/src/test/java/org/apache/ranger/patch/TestPatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
+++ 
b/security-admin/src/test/java/org/apache/ranger/patch/TestPatchPreSql_057_ForUpdateToUniqueGUID_J10052.java
@@ -218,7 +218,7 @@ public void testGetPolicy_nullAndWithZoneName() throws 
Exception {
         XXSecurityZone z = new XXSecurityZone();
         z.setId(1L);
         z.setName("zoneName");
-        
Mockito.when(xxSecurityZoneDao.findByZoneId(Mockito.anyLong())).thenReturn(z);
+        
Mockito.when(xxSecurityZoneDao.findZoneNameByZoneId(Mockito.anyLong())).thenReturn("zoneName");
 
         RangerPolicy out = (RangerPolicy) m.invoke(patch, p);
         Assertions.assertEquals("zoneName", out.getZoneName());

Reply via email to