This is an automated email from the ASF dual-hosted git repository.
dineshkumar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new aa9f9bc25 RANGER-5465: Handle upgrade failure caused by the Java patch
during the Ranger DB upgrade (#835)
aa9f9bc25 is described below
commit aa9f9bc25397faf0bfb4576ee6afa951a7885a90
Author: Dineshkumar Yadav <[email protected]>
AuthorDate: Wed Feb 4 14:13:15 2026 +0530
RANGER-5465: Handle upgrade failure caused by the Java patch during the
Ranger DB upgrade (#835)
---
.../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());