[
https://issues.apache.org/jira/browse/RANGER-5345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18032421#comment-18032421
]
Sanket Shelar commented on RANGER-5345:
---------------------------------------
Merged in master -
https://github.com/apache/ranger/commit/a522bc6fda3de336bf38dbe42395fe4e57b54f7a
> [GDS] Shared resource creation api is failing for oracle db
> -----------------------------------------------------------
>
> Key: RANGER-5345
> URL: https://issues.apache.org/jira/browse/RANGER-5345
> Project: Ranger
> Issue Type: Bug
> Components: Ranger
> Affects Versions: 3.0.0
> Reporter: Sanket Shelar
> Assignee: Sanket Shelar
> Priority: Major
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Api is failing due to distinct present in query for oracle.
>
> {code:java}
> <named-query name="XXGdsProject.findProjectsWithDataShareInStatus">
> <query>SELECT DISTINCT obj FROM XXGdsProject obj, XXGdsDatasetInProject dip,
> XXGdsDataShareInDataset dshid WHERE dshid.dataShareId = :dataShareId AND
> dshid.status = :status AND dip.datasetId = dshid.datasetId AND
> dip.projectId = obj.id AND dip.status = :status</query>
> </named-query>{code}
>
> Error log -
>
> {code:java}
> Caused by: org.eclipse.persistence.exceptions.DatabaseException: Internal
> Exception: java.sql.SQLException: ORA-22848: cannot use CLOB type as
> comparison key Error Code: 22848 Call: SELECT DISTINCT t2.id, t2.acl,
> t2.ADDED_BY_ID, t2.additional_info, t2.CREATE_TIME, t2.description, t2.guid,
> t2.is_enabled, t2.name, t2.options, t2.terms_of_use, t2.UPDATE_TIME,
> t2.UPD_BY_ID, t2.version FROM x_gds_dataset_in_project t0, x_gds_project t2,
> x_gds_data_share_in_dataset t1 WHERE (((((t1.data_share_id = ?) AND
> (t1.status = ?)) AND (t0.dataset_id = t1.dataset_id)) AND (t0.project_id =
> t2.id)) AND (t0.status = ?)) bind => [3 parameters bound] Query:
> ReadAllQuery(name="XXGdsProject.findProjectsWithDataShareInStatus"
> referenceClass=XXGdsProject sql="SELECT DISTINCT t2.id, t2.acl,
> t2.ADDED_BY_ID, t2.additional_info, t2.CREATE_TIME, t2.description, t2.guid,
> t2.is_enabled, t2.name, t2.options, t2.terms_of_use, t2.UPDATE_TIME,
> t2.UPD_BY_ID, t2.version FROM x_gds_dataset_in_project t0, x_gds_project t2,
> x_gds_data_share_in_dataset t1 WHERE (((((t1.data_share_id = ?) AND
> (t1.status = ?)) AND (t0.dataset_id = t1.dataset_id)) AND (t0.project_id =
> t2.id)) AND (t0.status = ?))") at
> org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:342)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:700)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2105)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:313)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:275)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:261)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:345)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:765)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2776)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2729)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:584)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1232)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:913)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1191)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:485)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1279)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3004)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1898)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1880)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1845)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] at
> org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:262)
> ~[eclipselink-2.7.12.jar:2.7.12.v20230209-e5c4074ef3] ... 125 more Caused
> by: java.sql.SQLException: ORA-22848: cannot use CLOB type as comparison
> key{code}
>
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Additionally seeing error logs whenever GDS resource APIs are invoked.
> {code:java}
> 2025-09-29 10:18:38,163 ERROR
> org.apache.ranger.authorization.utils.JsonUtils:
> [https-jsse-nio-6182-exec-1]: Cannot get Map<String,
> RangerPolicyItemDataMaskInfo> from null java.lang.IllegalArgumentException:
> argument "content" is null at
> com.fasterxml.jackson.databind.ObjectMapper._assertNotNull(ObjectMapper.java:4980)
> ~[jackson-databind-2.15.3.jar:?] at
> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3754)
> ~[jackson-databind-2.15.3.jar:?] at
> org.apache.ranger.authorization.utils.JsonUtils.jsonToListGdsMaskInfo(JsonUtils.java:283)
> [ranger-plugins-common-2.6.0.7.3.2.0-590.jar:?] at
> org.apache.ranger.service.RangerGdsDataShareService.mapEntityToViewBean(RangerGdsDataShareService.java:164)
> [classes/:?] at
> org.apache.ranger.service.RangerGdsDataShareService.mapEntityToViewBean(RangerGdsDataShareService.java:48)
> [classes/:?] at
> org.apache.ranger.service.RangerBaseModelService.populateViewBean(RangerBaseModelService.java:312)
> [classes/:?] at
> org.apache.ranger.service.RangerBaseModelService.postCreate(RangerBaseModelService.java:130)
> [classes/:?] at
> org.apache.ranger.service.RangerGdsDataShareService.postCreate(RangerGdsDataShareService.java:92)
> [classes/:?] at
> org.apache.ranger.service.RangerGdsDataShareService.postCreate(RangerGdsDataShareService.java:48)
> [classes/:?] at
> org.apache.ranger.service.RangerBaseModelService.create(RangerBaseModelService.java:137)
> [classes/:?] at
> org.apache.ranger.biz.GdsDBStore.createDataShare(GdsDBStore.java:560)
> [classes/:?] at
> org.apache.ranger.rest.GdsREST.getOrCreateDataShare(GdsREST.java:2148)
> [classes/:?] at
> org.apache.ranger.rest.GdsREST.addDatasetResources(GdsREST.java:215)
> [classes/:?] at
> org.apache.ranger.rest.GdsREST$$FastClassBySpringCGLIB$$5397f2f3.invoke(<generated>)
> [classes/:?] at
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
> [spring-core-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:67)
> [spring-security-core-5.8.18.cldr-b1.jar:5.8.18.cldr-b1] at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
> [spring-tx-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
> [spring-tx-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
> [spring-tx-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
> [spring-aop-5.3.44.cldr-b1.jar:5.3.44.cldr-b1] at
> org.apache.ranger.rest.GdsREST$$EnhancerBySpringCGLIB$$c940cf2e.addDatasetResources(<generated>)
> [classes/:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) ~[?:?] at
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> ~[?:?] at
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:?] at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] at
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> [jersey-bundle-1.19.4.jar:1.19.4] at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> [jersey-bundle-1.19.4.jar:1.19.4]{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)