Help with CustomCondition in xoai.xml using DSpaceSetSpecFilter

96 views
Skip to first unread message

Alfredo Carlos López

unread,
May 30, 2025, 1:10:00 PM5/30/25
to DSpace Technical Support
Hi.

We are using in testing dspace 8.1. 

We are tring to create a CustomCondition  in xoai.xml using DSpaceSetSpecFilter like 
this
--------------------------------------------------------------------------------
<Filters>

.....

     <!-- This condition determines if an Item belongs to a communitiy com_628872547_28240 veremos si anda. -->
        <CustomCondition id="isProdCientifica">
            <Class>org.dspace.xoai.filter.DSpaceSetSpecFilter</Class>
            <Configuration>
                <string name="setSpec">com_628872547_28240</string>
            </Configuration>
        </CustomCondition>
...


  </Filters>
-------------------------------------------------------------------------------- 
We test the search with solr directly and is working.. 
  
  When i use it in a filter it returns this error (like the solr search fail)

 -------------------------------------------------------------------------------- 
  2025-05-30 16:59:26,929 ERROR unknown 51d6c927-2600-4fbd-8f90-713bf17f033f org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver @ Filter org.dspace.xoai.filter.DSpaceSetSpecFilter could not be instantiated
java.lang.InstantiationException: org.dspace.xoai.filter.DSpaceSetSpecFilter
        at java.base/java.lang.Class.newInstance(Class.java:639) ~[?:?]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:75) ~[dspace-oai-8.1.jar!/:8.1]
        at com.lyncode.xoai.dataprovider.filter.conditions.CustomCondition.getFilter(CustomCondition.java:20) ~[xoai-3.4.0.jar!/:3.4.0]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:50) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:92) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:43) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:92) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:43) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:93) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.getFilter(BaseDSpaceFilterResolver.java:43) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.buildSolrQuery(BaseDSpaceFilterResolver.java:58) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.solr.DSpaceSolrQueryResolver.buildQuery(DSpaceSolrQueryResolver.java:42) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.solr.DSpaceSolrQueryResolver.buildQuery(DSpaceSolrQueryResolver.java:29) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.DSpaceItemSolrRepository.retrieveItems(DSpaceItemSolrRepository.java:106) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.DSpaceItemSolrRepository.getItems(DSpaceItemSolrRepository.java:95) ~[dspace-oai-8.1.jar!/:8.1]
        at com.lyncode.xoai.dataprovider.data.internal.ItemRepositoryHelper.getItems(ItemRepositoryHelper.java:206) ~[xoai-3.4.0.jar!/:3.4.0]
        at com.lyncode.xoai.dataprovider.handlers.ListRecordsHandler.handle(ListRecordsHandler.java:94) ~[xoai-3.4.0.jar!/:3.4.0]
        at com.lyncode.xoai.dataprovider.OAIDataProvider.handle(OAIDataProvider.java:213) ~[xoai-3.4.0.jar!/:3.4.0]
        at org.dspace.xoai.controller.DSpaceOAIDataProvider.contextAction(DSpaceOAIDataProvider.java:119) ~[dspace-oai-8.1.jar!/:8.1]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.dspace.app.rest.filter.DSpaceRequestContextFilter.doFilter(DSpaceRequestContextFilter.java:41) ~[dspace-server-webapp-8.1.jar!/:8.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.dspace.app.rest.filter.ContentLanguageHeaderResponseFilter.doFilter(ContentLanguageHeaderResponseFilter.java:51) ~[dspace-server-webapp-8.1.jar!/:8.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:87) ~[dspace-services-8.1.jar!/:8.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapUnsecured$1(ObservationFilterChainDecorator.java:90) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:219) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:243) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:238) [spring-security-config-6.4.2.jar!/:6.4.2]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:173) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-embed-core-10.1.34.jar!/:?]
        at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.lang.NoSuchMethodException: org.dspace.xoai.filter.DSpaceSetSpecFilter.<init>()
        at java.base/java.lang.Class.getConstructor0(Class.java:3585) ~[?:?]
        at java.base/java.lang.Class.newInstance(Class.java:626) ~[?:?]
        ... 99 more
2025-05-30 16:59:26,935 ERROR unknown 51d6c927-2600-4fbd-8f90-713bf17f033f org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice @ An exception has occurred (status:500)
java.lang.NullPointerException: Cannot invoke "org.dspace.xoai.filter.DSpaceFilter.buildSolrQuery()" because "this.left" is null
        at org.dspace.xoai.filter.AndFilter.buildSolrQuery(AndFilter.java:26) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.filter.AndFilter.buildSolrQuery(AndFilter.java:26) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.filter.AndFilter.buildSolrQuery(AndFilter.java:26) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.BaseDSpaceFilterResolver.buildSolrQuery(BaseDSpaceFilterResolver.java:59) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.solr.DSpaceSolrQueryResolver.buildQuery(DSpaceSolrQueryResolver.java:42) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.solr.DSpaceSolrQueryResolver.buildQuery(DSpaceSolrQueryResolver.java:29) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.DSpaceItemSolrRepository.retrieveItems(DSpaceItemSolrRepository.java:106) ~[dspace-oai-8.1.jar!/:8.1]
        at org.dspace.xoai.services.impl.xoai.DSpaceItemSolrRepository.getItems(DSpaceItemSolrRepository.java:95) ~[dspace-oai-8.1.jar!/:8.1]
        at com.lyncode.xoai.dataprovider.data.internal.ItemRepositoryHelper.getItems(ItemRepositoryHelper.java:206) ~[xoai-3.4.0.jar!/:3.4.0]
        at com.lyncode.xoai.dataprovider.handlers.ListRecordsHandler.handle(ListRecordsHandler.java:94) ~[xoai-3.4.0.jar!/:3.4.0]
        at com.lyncode.xoai.dataprovider.OAIDataProvider.handle(OAIDataProvider.java:213) ~[xoai-3.4.0.jar!/:3.4.0]
        at org.dspace.xoai.controller.DSpaceOAIDataProvider.contextAction(DSpaceOAIDataProvider.java:119) ~[dspace-oai-8.1.jar!/:8.1]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.dspace.app.rest.filter.DSpaceRequestContextFilter.doFilter(DSpaceRequestContextFilter.java:41) ~[dspace-server-webapp-8.1.jar!/:8.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.dspace.app.rest.filter.ContentLanguageHeaderResponseFilter.doFilter(ContentLanguageHeaderResponseFilter.java:51) ~[dspace-server-webapp-8.1.jar!/:8.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:87) ~[dspace-services-8.1.jar!/:8.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapUnsecured$1(ObservationFilterChainDecorator.java:90) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:219) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.4.2.jar!/:6.4.2]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:243) ~[spring-webmvc-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:238) [spring-security-config-6.4.2.jar!/:6.4.2]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:173) [spring-web-6.2.2.jar!/:6.2.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) [spring-web-6.2.2.jar!/:6.2.2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-10.1.34.jar!/:?]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-embed-core-10.1.34.jar!/:?]
        at java.base/java.lang.Thread.run(Thread.java:840) [?:?]

-------------------------------------------------------------------------------- 

Alfredo Carlos López

unread,
Jun 6, 2025, 11:15:22 AM6/6/25
to DSpace Technical Support
I solved the problem by taking a different approach. 

Since I couldn't filter by community because the method used in my previous post failed, and I didn't want to touch the DSpace source code, I was able to filter the community for that set (without any filters) by using the community name in the set definition (the set name is snrd). (This also seems to work with collection.)

So, for future reference in the future, in my xoai.xml file in the <contexts> section I add my context:
<Contexts>
       <Context baseurl="request" name="Default Context">
       ......
      <Context baseurl="snrd"  name="SNRD Context">
           <!-- Date format, field prefixes, etc are ensured by the transformer -->
           <Transformer ref="snrdTransformer" />
           <!-- The snrd filter -->
           <Filter ref="snrdFilter"/>
           <!-- Just an alias, in fact it returns all items within the driver context -->
           <Set ref="snrdSet" />
           <!-- Metadata Formats -->
           <Format ref="oaidc"/>
           <Description>
               This contexts complies with SNRD rules.
           </Description>
       </Context>
<Contexts>

In the <Transformers> section add my transformations.. 
    <Transformers>
       ........
       <Transformer id="snrdTransformer">
           <XSLT>transformers/snrd.xsl</XSLT>
           <Description>SNRD context transformer</Description>
       </Transformer>
   </Transformers>

In the <Filters> section add my filters
   <Filters>
       ........
       <!-- this works with my setup -->
       <Filter id="snrdFilter">
               <Definition>
               <And>
                   <LeftCondition>
                       <!-- This condition determines if an Item has Bundle dspaceItem.getBundles("ORIGINAL") o algo asi-->
                       <Custom ref="itemsWithBitstreamsFilter"/>
                   </LeftCondition>
                   <RightCondition>
                       <And>
                           <LeftCondition>
                               <!-- This condition determines if an Item is publicly accessible. -->
                               <Custom ref="itemAccessCondition"/>
                           </LeftCondition>
                           <RightCondition>
                               <And>
                                   <LeftCondition>
                                       <!-- This condition determines if an Item NO es privado/retirado -->
                                       <Not>
                                           <Condition>
                                               <Custom ref="itemWithdrawnCondition"/>
                                           </Condition>
                                       </Not>
                                   </LeftCondition>
                                   <RightCondition>
                                       <!-- This condition determines if an Item tiene en entity.type sea Publication/publicaton -->
                                       <Custom ref="isPublicationEntityCondition"/>
                                   </RightCondition>
                               </And>
                           </RightCondition>
                       </And>
                   </RightCondition>
               </And>
           </Definition>
       </Filter>
   </Filters>

And now in the <Sets> section, in the definition of my set, I add the keyword/tag <spec> to match the desire community:
   <Sets>
       ........
       <Set id="snrdSet">
           <Spec>snrd</Spec>
           <Name>Conjunto de recursos para Sistema Nacional de Repositorios Digitales, Argentina SNRD</Name>
           <spec>com_628872547_28240</spec>
       </Set>
   </Sets>

After restart and running "[dspace]/bin/dspace oai import -c -v"

I found the solution while chatting with ChatGPT; I couldn't find the solution in the documentation. I 
And I don't know why it works. I hope it's not unintended behavior and I can use it safely...
I hope this helps those working on implementing the snrd set in OAI for use with digital repositories in Argentina.


--
All messages to this mailing list should adhere to the Code of Conduct: https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
---
You received this message because you are subscribed to the Google Groups "DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dspace-tech...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dspace-tech/2ee887b5-b0df-4a44-9b0c-e1aa347181efn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages