absolute_storedEntityIdentifier starts with ROOT twice
Wenn eine SIP im TA ToPermanent hängen bleibt, hat das Storage Plugin bereits den ROOT path in den absolute_storedEntityIdentifier eingetragen. Bei einem Rerun wir dann der ROOT path noch einmal vorn an den Pfad angefügt, was zu einem Fehler führt und das SIP in den TA System Error leitet. Die relevante Fehlermeldung aus Rosettas server.log lautet:
java.io.IOException: SLUBStoragePlugin.contractAssertIsAbsolutePath() absolute_storedEntityIdentifier='/permanent_storage/normal/permanent_storage/normal/2023/03/28/IE34587672/V1-FL34587684.xml' starts with ROOT '/permanent_storage/normal' twice!
Aufgefallen ist das Problem bei Ingests, die stattfanden, nachdem das Solr Passwort geändert worden war.
Vollständige Logausgabe:
2023-03-28 15:05:23,280 ERROR [com.exlibris.core.infra.svc.impl.resourcemanagement.JobReceiver] (PERMANENT_WORK_QUEUE Queue Job Receiver 129) [] java.lang.RuntimeException: java.lang.RuntimeException: org.xml.sax.SAXException: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at com.exlibris.core.infra.svc.api.queue.OracleAQWorkQueueMDB.onMessage(OracleAQWorkQueueMDB.java:71)
at com.exlibris.core.infra.svc.impl.resourcemanagement.ResourcesJobManagerImpl.waitForQueueMsgAndWorkOn(ResourcesJobManagerImpl.java:128)
at jdk.internal.reflect.GeneratedMethodAccessor605.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at jdk.proxy6/jdk.proxy6.$Proxy282.waitForQueueMsgAndWorkOn(Unknown Source)
at com.exlibris.core.infra.svc.impl.resourcemanagement.JobReceiver.run(JobReceiver.java:94)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.RuntimeException: org.xml.sax.SAXException: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at com.exlibris.dps.permanent.svc.impl.PermanentWorkServiceImpl.processWork(PermanentWorkServiceImpl.java:361)
at com.exlibris.dps.permanent.svc.impl.PermanentWorkServiceImpl.addWork(PermanentWorkServiceImpl.java:229)
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:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at jdk.proxy6/jdk.proxy6.$Proxy292.addWork(Unknown Source)
at com.exlibris.dps.permanent.svc.job.PermanentWorkJob.execute(PermanentWorkJob.java:80)
at com.exlibris.dps.permanent.svc.job.PermanentWorkJob.execute(PermanentWorkJob.java:44)
at com.exlibris.core.infra.svc.api.queue.AbstractWorkQueue.notifyListeners(AbstractWorkQueue.java:36)
at com.exlibris.core.infra.svc.api.queue.OracleAQWorkQueueMDB.onMessage(OracleAQWorkQueueMDB.java:65)
... 17 more
Caused by: org.xml.sax.SAXException: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at com.exlibris.dps.permanent.svc.impl.SaxCommitToPermanent.endElement(SaxCommitToPermanent.java:387)
at java.xml/org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:558)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:345)
at com.exlibris.dps.permanent.svc.impl.SaxCommitToPermanent.parse(SaxCommitToPermanent.java:571)
at com.exlibris.dps.permanent.svc.impl.PermanentWorkServiceImpl.copyAndCreateIndexes(PermanentWorkServiceImpl.java:517)
at com.exlibris.dps.permanent.svc.impl.PermanentWorkServiceImpl.processWork(PermanentWorkServiceImpl.java:339)
... 35 more
Caused by: java.lang.reflect.InvocationTargetException
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:568)
at com.exlibris.core.infra.common.javaclass.PluginInvokationHandler.invoke(PluginInvokationHandler.java:43)
at jdk.proxy9/jdk.proxy9.$Proxy487.storeEntity(Unknown Source)
at com.exlibris.dps.permanent.svc.impl.SaxCommitToPermanent.workOnFile(SaxCommitToPermanent.java:500)
at com.exlibris.dps.permanent.svc.impl.SaxCommitToPermanent.endElement(SaxCommitToPermanent.java:385)
... 48 more
Caused by: java.io.IOException: SLUBStoragePlugin.contractAssertIsAbsolutePath() absolute_storedEntityIdentifier='/permanent_storage/normal/permanent_storage/normal/2023/03/28/IE34587672/V1-FL34587684.xml' starts with ROOT '/permanent_storage/normal' twice!
at org.slub.rosetta.dps.repository.plugin.storage.nfs.SLUBStoragePlugin.contractAssertIsAbsolutePath(SLUBStoragePlugin.java:371)
at org.slub.rosetta.dps.repository.plugin.storage.nfs.SLUBStoragePlugin.checkFixity(SLUBStoragePlugin.java:155)
at org.slub.rosetta.dps.repository.plugin.storage.nfs.SLUBStoragePlugin.storeEntity(SLUBStoragePlugin.java:446)
Edited by Jörg Sachse