<li>Yesterday I realized how to use <ahref="https://im4java.sourceforge.net/docs/dev-guide.html">GraphicsMagick with im4java</a> and I want to re-visit some of my thumbnail tests
<ul>
<li>I’m also interested in libvips support via jVips, though last time I checked it was only for Java 8</li>
<li>I filed <ahref="https://github.com/criteo/JVips/issues/141">an issue to ask about Java 11+ support</a></li>
<li><ahref="https://github.com/DSpace/DSpace/pull/8503">Update PDFBox dependency to version 2.0.27</a></li>
<li><ahref="https://github.com/DSpace/DSpace/pull/8504">Update Apache commons-dbcp2 and commons-pool2 dependencies</a></li>
</ul>
</li>
<li>Udana had asked me about their RSS feed and it not showing the latest publications in his email inbox
<ul>
<li>He is using this feed from FeedBurner: <ahref="https://feeds.feedburner.com/iwmi-cgspace">https://feeds.feedburner.com/iwmi-cgspace</a></li>
<li>I don’t have access to the FeedBurner configuration, but I looked at the <ahref="https://gist.github.com/alanorth/0c518fc571f450f8cc353c42cbdd277c">raw feed</a> and see it’s just getting all the items in the IWMI community</li>
<li>This OpenSearch query should do the same: <code>https://cgspace.cgiar.org/open-search/discover?scope=10568/16814&query=*&sort_by=3&order=DESC</code></li>
<li>The <code>sort_by=3</code> corresponds to <code>webui.itemlist.sort-option.3 = dateaccessioned:dc.date.accessioned:date</code> in dspace.cfg</li>
</ul>
</li>
<li>Peter sent me a CSV file a few days ago that he was unable to upload to CGSpace
<ul>
<li>The stacktrace from the error he was getting was:</li>
</ul>
</li>
</ul>
<divclass="highlight"><pretabindex="0"style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><codeclass="language-console"data-lang="console"><spanstyle="display:flex;"><span>Java stacktrace: java.lang.ClassCastException: org.apache.cocoon.servlet.multipart.PartInMemory cannot be cast to org.dspace.app.xmlui.cocoon.servlet.multipart.DSpacePartOnDisk
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.aspect.administrative.FlowMetadataImportUtils.processUploadCSV(FlowMetadataImportUtils.java:116)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3237)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2394)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:160)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.Context.call(Context.java:538)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1833)
</span></span><spanstyle="display:flex;"><span> at org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1803)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:698)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:94)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:82)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:186)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:260)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:107)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:186)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:260)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:107)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:186)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:260)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:277)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:81)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:480)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor267.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.prepareInternal(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:292)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:148)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:62)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:153)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.source.CocoonSourceResolver.resolveURI(CocoonSourceResolver.java:183)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:99)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy190.setup(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:343)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:710)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:466)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:411)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.GeneratedMethodAccessor331.invoke(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
</span></span><spanstyle="display:flex;"><span> at java.lang.reflect.Method.invoke(Method.java:498)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy189.process(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:81)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:171)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:247)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.servlet.RequestProcessor.process(RequestProcessor.java:351)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.servlet.RequestProcessor.service(RequestProcessor.java:169)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:84)
</span></span><spanstyle="display:flex;"><span> at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:468)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:443)
</span></span><spanstyle="display:flex;"><span> at org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:264)
</span></span><spanstyle="display:flex;"><span> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
</span></span><spanstyle="display:flex;"><span> at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
</span></span><spanstyle="display:flex;"><span> at com.sun.proxy.$Proxy186.service(Unknown Source)
</span></span><spanstyle="display:flex;"><span> at org.dspace.springmvc.CocoonView.render(CocoonView.java:113)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1216)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1001)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:951)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:853)
</span></span><spanstyle="display:flex;"><span> at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
</span></span><spanstyle="display:flex;"><span> at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:827)
</span></span><spanstyle="display:flex;"><span> at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:113)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter.doFilter(DSpaceCocoonServletFilter.java:160)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
</span></span><spanstyle="display:flex;"><span> at org.dspace.app.xmlui.cocoon.servlet.multipart.DSpaceMultipartFilter.doFilter(DSpaceMultipartFilter.java:119)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
</span></span><spanstyle="display:flex;"><span> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
</span></span><spanstyle="display:flex;"><span> at org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:78)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:165)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.valves.CrawlerSessionManagerValve.invoke(CrawlerSessionManagerValve.java:235)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
</span></span><spanstyle="display:flex;"><span> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:451)
</span></span><spanstyle="display:flex;"><span> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1201)
</span></span><spanstyle="display:flex;"><span> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:654)
</span></span><spanstyle="display:flex;"><span> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:317)
</span></span><spanstyle="display:flex;"><span> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
</span></span><spanstyle="display:flex;"><span> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
</span></span><spanstyle="display:flex;"><span> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
</span></span><spanstyle="display:flex;"><span> at java.lang.Thread.run(Thread.java:750)
</span></span></code></pre></div><ul>
<li>So this is a broken side effect from the <code>org.apache.cocoon.uploads.autosave=false</code> change I made a few weeks ago
<ul>
<li>Importing the CSV via the command line works fine</li>
<li>I stumbled across more low-quality thumbnails on CGSpace
<ul>
<li>Some have the description “Generated Thumbnail”, and others are manually uploaded “.jpg.jpg” ones…</li>
<li>I want to develop some more thumbnail fixer scripts to the cgspace-java-helpers suite:
<ul>
<li>If an item has an <code>IM Thumbnail</code> and a <code>Generated Thumbnail</code> in the <code>THUMBNAIL</code> bundle, remove the <code>Generated Thumbnail</code></li>
<li>If an item has a PDF bitstream and a JPG bitstream with description /thumbnail/ in the ORIGINAL bundle, remove the /thumbnail/ bitstream in the ORIGINAL bundle and try to remove the /thumbnail/.jpg bitstream in the THUMBNAIL bundle</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2id="2022-10-05">2022-10-05</h2>
<ul>
<li>I updated the <ahref="https://github.com/ilri/cgspace-java-helpers">cgspace-java-helpers</a> to include a new <code>FixLowQualityThumbnails</code> script to detect the low-quality thumbnails I found above</li>
<li>Add missing ORCID identifier for an Alliance author</li>
<li>I’ve been running the <code>dspace cleanup -v</code> script every few weeks or months on CGSpace and assuming it finished successfully because I didn’t get a error on the stdout/stderr, but today I noticed that the script keeps saying it is deleting the same bitstreams
<ul>
<li>I looked in dspace.log and found the error I used to see a lot:</li>
</ul>
</li>
</ul>
<divclass="highlight"><pretabindex="0"style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><codeclass="language-console"data-lang="console"><spanstyle="display:flex;"><span>Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table "bitstream" violates foreign key constraint "bundle_primary_bitstream_id_fkey" on table "bundle"
</span></span><spanstyle="display:flex;"><span> Detail: Key (uuid)=(99b76ee4-15c6-458c-a940-866148bc7dee) is still referenced from table "bundle".
</span></span></code></pre></div><ul>
<li>If I mark the primary bitstream as null manually the cleanup script continues until it finds a few more
<ul>
<li>I ended up with a long list of UUIDs to fix before the script would complete:</li>
</ul>
</li>
</ul>
<divclass="highlight"><pretabindex="0"style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><codeclass="language-console"data-lang="console"><spanstyle="display:flex;"><span>$ psql -d dspace -c <spanstyle="color:#e6db74">"update bundle set primary_bitstream_id=NULL where primary_bitstream_id in ('b76d41c0-0a02-4f53-bfde-a840ccfff903','1981efaa-eadb-46cd-9d7b-12d7a8cff4c4','97a8b1fa-3c12-4122-9c7b-fc2a3eaf570d','99b76ee4-15c6-458c-a940-866148bc7dee','f330fc22-a787-46e2-b8d0-64cc3e166124','592f4a0d-1ed5-4663-be0e-958c0d3e653b','e73b3178-8f29-42bc-bfd1-1a454903343c','e3a5f592-ac23-4934-a2b2-26735fac0c4f','73f4ff6c-6679-44e8-8cbd-9f28a1df6927','11c9a75c-17a6-4966-a4e8-a473010eb34c','155faf93-92c5-4c17-866e-1db50b1f9687','8e073e9e-ab54-4d99-971a-66de073d51e3','76ddd62c-6499-4a8c-beea-3fc8c60200d8','2850fcc9-f450-430a-9317-c42def74e813','8fef3198-2aea-4bd8-aeab-bf5fccb46e42','9e3c3528-e20f-4da3-a0bd-ae9b8515b770')"</span>
<li>Interesting, someone on the DSpace Slack mentioned this as being a known issue with discussion, reproducers, and a pull request: <ahref="https://github.com/DSpace/DSpace/issues/7348">https://github.com/DSpace/DSpace/issues/7348</a></li>
<li>I am having an issue with the new FixLowQualityThumbnails script on some communities like 10568/117865 and 10568/97114
<ul>
<li>For some reason it doesn’t descend into the collections</li>
<li>Also, my old FixJpgJpgThumbnails doesn’t either… weird</li>
<li>I might have to resort to getting a list of collections and doing it that way:</li>
</ul>
</li>
</ul>
<divclass="highlight"><pretabindex="0"style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><codeclass="language-console"data-lang="console"><spanstyle="display:flex;"><span>$ psql -h localhost -U postgres -d dspacetest -c <spanstyle="color:#e6db74">'SELECT ds6_collection2collectionhandle(uuid) FROM collection WHERE uuid in (SELECT uuid FROM collection);'</span> |
</span></span><spanstyle="display:flex;"><span> sed 1,2d |
</span></span><spanstyle="display:flex;"><span> sed 1,3d > /tmp/collections
</span></span></code></pre></div><ul>
<li>Strange, I don’t think doing it by collections is actually working because it says it’s replacing the bitstreams, but it doesn’t actually do it
<ul>
<li>I don’t have time to figure out what’s happening, because I see “update_item” in dspace.log when the script says it’s doing it, but it doesn’t do it</li>
<li>I might just extract a list of items that have .jpg.jpg thumbnails from the database and run the script through item mode</li>
<li>There might be a problem with the context commit logic…?</li>
</ul>
</li>
<li>I exported a list of items that have .jpg.jpg thumbnails on CGSpace:</li>
</ul>
<divclass="highlight"><pretabindex="0"style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><codeclass="language-console"data-lang="console"><spanstyle="display:flex;"><span>$ psql -h localhost -p <spanstyle="color:#ae81ff">5432</span> -U postgres -d dspacetest -c <spanstyle="color:#e6db74">"SELECT ds6_bitstream2itemhandle(dspace_object_id) FROM metadatavalue WHERE text_value ~ '.*\.(jpg|jpeg|JPG|JPEG)\.(jpg|jpeg|JPG|JPEG)' AND dspace_object_id IS NOT NULL;"</span> |
</span></span><spanstyle="display:flex;"><span> sed 1,2d |
</span></span><spanstyle="display:flex;"><span> sed 's/ //'> /tmp/jpgjpg-handles.txt
</span></span></code></pre></div><ul>
<li>I restarted DSpace Test because it had high load since yesterday and I don’t know why</li>
<li>Run <code>check-duplicates.py</code> on the 1642 MARLO Innovations to try to include matches from the OICRs we uploaded last month
<ul>
<li>Then I processed those matches like I did with the OICRs themselves last month, and then cleaned them one last time with csv-metadata-quality, created a SAF bundle, and uploaded them to CGSpace</li>
<li>BTW this bumps CGSpace over 100,000 items…</li>
<li>Then I did the same for the 749 MARLO MELIAs and imported them to CGSpace</li>
</ul>
</li>
<li>Meeting about CG Core types with Abenet, Marie-Angelique, Sara, Margarita, and Valentina</li>
<li>I made some minor logic changes to the FixJpgJpgThumbnails script in cgspace-java-helpers
<ul>
<li>Now it checks to make sure the bitstream description is not empty or null, and also excludes Maps (in addition to Infographics) since those are likely to be JPEG files in the ORIGINAL bundle on purpose</li>
</ul>
</li>
</ul>
<h2id="2022-10-07">2022-10-07</h2>
<ul>
<li>I did the matching and cleaning on the 512 MARLO Policies and uploaded them to CGSpace</li>
<li>I sent a list of the IDs and Handles for all four groups of MARLO items to Jose so he can do the redirects on their server:</li>
</span></span><spanstyle="display:flex;"><span> 3589 total
</span></span></code></pre></div><ul>
<li>I fixed the mysterious issue with my cgspace-java-helpers scripts not working on communities and collections
<ul>
<li>It was because the code wasn’t committing the context!</li>
<li>I ran both <code>FixJpgJpgThumbnails</code> and <code>FixLowQualityThumbnails</code> on a dozen or so large collections on CGSpace and processed about 1,200 low-quality thumbnails</li>
</ul>
</li>
<li>I did a complete re-sync of CGSpace to DSpace Test</li>
<li>Experiment with PDF thumbnails in ImageMagick again, I found an <ahref="https://legacy.imagemagick.org/Usage/thumbnails/">interesting reference on their legacy website</a> saying we can use <code>-unsharp</code> after <code>-thumbnail</code> to make them less blurry
<ul>
<li>There are a few examples for unsharp values (starting from a DSpace default of a flattened JPEG from the PDF, then the thumbnail in a second operation:</li>
<li>I put together the microsite for improving DSpace PDF thumbnails: <ahref="https://github.com/alanorth/improved-dspace-thumbnails/">https://github.com/alanorth/improved-dspace-thumbnails/</a>
<ul>
<li>I need to make the pull request to DSpace</li>
</ul>
</li>
<li>I also discussed the thumbnails with Dani in Addis</li>
</ul>
<h2id="2022-10-12">2022-10-12</h2>
<ul>
<li>I submitted a pull request to DSpace 7 for the <code>-unsharp 0x0.5</code> change: <ahref="https://github.com/DSpace/DSpace/pull/8515">https://github.com/DSpace/DSpace/pull/8515</a></li>
<li>I did some tests on CGSpace and verified that MEL will indeed need admin permissions on every collection that they want to map to</li>
<li>I had a call with Salem and he asked me about redirecting from some CRP duplicates that exist in both MELSpace and CGSpace
<ul>
<li>We decided that the only way is to use an HTTP 301 redirect in the nginx web server, but I said that I’d check with CNRI to see if there was a way to do this within the Handle system</li>
<li>Which means MELSpace is having some issue</li>
<li>I’m not sure what was going on on CGSpace yesterday, but the load was indeed very high according to Munin:</li>
</ul>
<p><imgsrc="/cgspace-notes/2022/10/cpu-day.png"alt="CGSpace CPU load day"></p>
<ul>
<li>The pattern is clear on Sundays if you look at the past month:</li>
</ul>
<p><imgsrc="/cgspace-notes/2022/10/cpu-month.png"alt="CGSpace CPU load month"></p>
<ul>
<li>I have yet to find an increased nginx request pattern correlating with the increased load, but looking back on the last year it seems something started happening around March, 2022, and also I start seeing CPU steal in July (red coming from the top of the graph):</li>
</ul>
<p><imgsrc="/cgspace-notes/2022/10/cpu-year.png"alt="CGSpace CPU load year"></p>
<ul>
<li>The amount of CPU steal is very low if I look at it now, around 1 or 2 percent, but what’s happening now reminds me of the mysterious load problems I had in 2019-03 that were due to CPU steal</li>
<li>Apply some corrections to a few hundred items on CGSpace for Peter</li>
<li>Meeting with Abenet, Sara, and Valentina about CG Core types
<ul>
<li>We finished going over our list and agreed to send a message to concerned parties in our organizations for feedback by November 4th</li>
<li>Next week we will continue doing the definitions</li>
</ul>
</li>
<li>Re-sync CGSpace to DSpace Test to get the latest Initiatives changes
<ul>
<li>I also need to re-create the CIAT/Alliance TIP accounts so they can continue testing</li>
<li>I re-created the <ahref="mailto:tip-submit@cgiar.org">tip-submit@cgiar.org</a> and <ahref="mailto:tip-approve@cgiar.org">tip-approve@cgiar.org</a> account on DSpace Test</li>
<li>According to my notes:
<ul>
<li>A user must be in the collection admin group in order to deposit via the REST API (not in the collection’s “Submit” group, which is for normal submission)</li>
<li>A user must be in the collection’s “Accept/Reject/Edit Metadata” step in order to see and approve the item in the DSpace workflow</li>
</ul>
</li>
<li>I created a new “TIP test” collection under Alliance’s community and added the users accordingly</li>
<li>I think I’ll be able to just add these two submit/approve users to the Alliance Admins and Alliance Editors groups once we’re ready</li>
<li>I submitted a <ahref="https://bugs.ghostscript.com/show_bug.cgi?id=705994">bug report for the two-page portrait layout of some PDF thumbnails</a> on Ghostscript’s bug tracker
<ul>
<li>For reference, the thumbnail for PDFs like in <ahref="https://hdl.handle.net/10568/116598">10568/116598</a> looks like this:</li>
<li>In other news, I see <code>pdftocairo</code> from the poppler package produces a similar, though slightly prettier version of the thumbnail of that PDF:</li>
<li>The Ghostscript developers responded in a few minutes (!) and explained that PDFs can contain many different “boxes”:</li>
</ul>
<blockquote>
<p>PDF files can have multiple different ‘Box’ values; ArtBox, BleedBox, CropBox, MediaBox and TrimBox. The MediaBox is required the other boxes are optional, a given PDF page description must contain the MediaBox and may contain any or all of the others.</p>
<p>By default Ghostscript uses the MediaBox to determine the size of the media. Other PDF consumers may exhibit other behaviours.</p>
<p>The pages in your PDF file contain all of the Boxes. In the majority of cases the Boxes all contain the same values (which makes their inclusion pointless of course). But for page 1 they differ:</p>
<p>/CropBox[594.375 0.0 1190.55 839.176]
/MediaBox[0.0 0.0 1190.55 841.89]</p>
<p>You can tell Ghostscript to use a different Box value for the media by using one of -dUseArtBox, -dUseBleedBox, -dUseCropBox, -dUseTrim,Box. If I specify -dUseCropBox then the file is rendered as you expect.</p>
</blockquote>
<ul>
<li>I confirm that adding <code>-define pdf:use-cropbox=true</code> to the ImageMagick command produces a better thumbnail in this case
<ul>
<li>We can check the boxes in a PDF using <code>pdfinfo</code> from the poppler package:</li>
<li>In this case the MediaBox is a strange size, and we should use the CropBox
<ul>
<li>I wonder if we can check that from DSpace…</li>
</ul>
</li>
<li>Apply some corrections from Peter on CGSpace</li>
<li>Meeting with Leroy, Daniel, Francesca, and Maria from Alliance to review their TIP tool and talk about next steps
<ul>
<li>We asked them to do some real submissions (as opposed to “I like coffee” etc) to test the full breadth of the metadata and controlled vocabularies</li>
</ul>
</li>
<li>Minor work on the CG Core Types spreadsheet to clear up some of the actions and incorporate some of Peter’s feedback</li>
<li>After looking at the request patterns in nginx on CGSpace for the past few weeks I see nothing that would explain the high loads we see several times per week (especially Sundays!)
<ul>
<li>So I suspect there is a noisy neighbor, and actually I do see some non-trivial amount of CPU steal in my Munin graphs and <code>iostat</code></li>
<li>I asked Linode to move the instance elsewhere</li>