Stream: containers

Topic: Internal Server Error while creating a new dataset


view this post on Zulip César Ferreira (May 14 2025 at 14:31):

Hi everyone, I have a fresh installation of Dataverse version 6.6 using Docker containers and when I try to create a new dataset it causes an Internal Server Error. The only entry I can find in server.log is the following:

[2025-05-14T14:26:02.331+0000] [Payara 6.2025.2] [WARNING] [] [jakarta.enterprise.web] [tid: _ThreadID=115 _ThreadName=http-thread-pool::http-listener-1(4)] [timeMillis: 1747232762331] [levelValue: 900] [[
  StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
        at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
        at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
        at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
        at java.base/java.util.Objects.checkIndex(Objects.java:361)
        at java.base/java.util.ArrayList.get(ArrayList.java:427)
        at edu.harvard.iq.dataverse.DatasetPage.resetVersionUI(DatasetPage.java:2624)
        at edu.harvard.iq.dataverse.DatasetPage.init(DatasetPage.java:2223)
        at edu.harvard.iq.dataverse.DatasetPage.init(DatasetPage.java:1933)
        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.glassfish.expressly.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:186)
        at org.glassfish.expressly.parser.AstValue.invoke(AstValue.java:253)
        at org.glassfish.expressly.MethodExpressionImpl.invoke(MethodExpressionImpl.java:248)
        at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
        at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:70)
        at com.sun.faces.application.ActionListenerImpl.getNavigationOutcome(ActionListenerImpl.java:74)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:62)
        at jakarta.faces.component.UIViewAction.broadcast(UIViewAction.java:506)
        at jakarta.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:858)
        at jakarta.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1338)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:56)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:131)
        at jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:691)
        at jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1554)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:331)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
        at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
        at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:166)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:757)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:158)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:372)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:239)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
        at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
        at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
        at java.base/java.lang.Thread.run(Thread.java:840)
]]

Any ideas of what could be causing this error?

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 14:40):

That's the complete server.log file?

view this post on Zulip César Ferreira (May 14 2025 at 14:42):

That's only the last entry from server.log, which is the only one that appears with the error.

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 14:46):

very strange

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 14:47):

So you're saying you're getting that index out of bounds exception here: https://github.com/IQSS/dataverse/blob/v6.6/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java#L2624

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 14:50):

It looks like that code was touched for 6.6 in this PR: ORCID: Support authenticated ORCIDs in account profile #11222

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 14:51):

How does the author info look when you are entering it? Can you please share a screenshot?

view this post on Zulip César Ferreira (May 14 2025 at 14:54):

I can't even get to the creation page, when I click on New Dataset it returns the Internal Server Error page. I am using the user dataverseAdmin. The line of the code you sent refers to first name and last name, which looks to be correctly set for that user.

view this post on Zulip César Ferreira (May 14 2025 at 15:14):

I created a new user, to check if it was only happening for dataverseAdmin, but it looks like it is happening for all users.

While looking at server.log, I also found at the beginning a lot of SEVERE entries like this, all for .jar files inside /usr/local/payara6/glassfish/domains/domain1/applications/dataverse/WEB-INF/lib/:

[2025-05-14T13:54:50.207+0000] [Payara 6.2025.2] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=166 _ThreadName=payara-executor-service-task] [timeMillis: 1747230890207] [levelValue: 1000] [[
  Exception while parsing file file:/usr/local/payara6/glassfish/domains/domain1/applications/dataverse/WEB-INF/lib/antlr4-runtime-4.12.0.jar
java.lang.RuntimeException: java.io.IOException: invalid zip file: file:/usr/local/payara6/glassfish/domains/domain1/applications/dataverse/WEB-INF/lib/antlr4-runtime-4.12.0.jar
    at com.sun.enterprise.deployment.deploy.shared.InputJarArchive.entries(InputJarArchive.java:205)
    at com.sun.enterprise.deployment.deploy.shared.InputJarArchive.entries(InputJarArchive.java:182)
    at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:125)
    at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:321)
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:280)
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:269)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    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:840)
Caused by: java.io.IOException: invalid zip file: file:/usr/local/payara6/glassfish/domains/domain1/applications/dataverse/WEB-INF/lib/antlr4-runtime-4.12.0.jar
    at com.sun.enterprise.deployment.deploy.shared.InputJarArchive$ArchiveJarEntrySource.<init>(InputJarArchive.java:589)
    at com.sun.enterprise.deployment.deploy.shared.InputJarArchive.createEntryEnumeration(InputJarArchive.java:458)
    at com.sun.enterprise.deployment.deploy.shared.InputJarArchive.entries(InputJarArchive.java:203)
    ... 9 more
]]

Could this be the cause? On the dashboard page I noticed that some elements are not rendering correctly, like this:
image.png

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 15:26):

Strange. How are you running Dataverse? You mentioned Docker. Are you following https://guides.dataverse.org/en/6.6/container/running/demo.html ?

view this post on Zulip César Ferreira (May 14 2025 at 15:28):

No, I am following our repository https://gitlab.com/lip-computing/dataverse.

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 15:39):

As a sanity check, could you please try that "demo" tutorial?

view this post on Zulip César Ferreira (May 14 2025 at 15:49):

I was using older versions of the metadatablocks .tsv files, thats why I was getting that index out of bounds error.

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 15:50):

Ah, sounds like you figured it out. Great!

view this post on Zulip César Ferreira (May 14 2025 at 15:53):

Thank you for the help @Philip Durbin ☀️ .
Two more things:

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 15:54):

Yes, the ??? is probably from out of date properties files.

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 15:56):

I'm not sure what to say about the jar file. I have it locally too:

% find . | grep antlr4-runtime
./target/dataverse/WEB-INF/lib/antlr4-runtime-4.12.0.jar
./target/docker/gdcc/dataverse/unstable/build/maven/deps/antlr4-runtime-4.12.0.jar

@Oliver Bertuch might know. He contributes to Payara.

view this post on Zulip César Ferreira (May 14 2025 at 16:01):

For the language packages I am using the ones from https://github.com/GlobalDataverseCommunityConsortium/dataverse-language-packs.git version 6.4. I searched in Bundle.properties and the var names do not match with the ones presented https://github.com/GlobalDataverseCommunityConsortium/dataverse-language-packs/blob/bf38c1607f87574a6a33c3f5d9d27b7c162de604/en_US/Bundle.properties#L525:
image.png

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 16:04):

Hmm, Jayanthy knows more about that repo than I do. You could open an issue.

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 16:04):

What if you get them from https://github.com/IQSS/dataverse/tree/v6.4 ?

view this post on Zulip César Ferreira (May 14 2025 at 16:08):

Actually I am using Dataverse v6.6, the language packages are v6.4 just because it is the most recent version available on that repository. For now I can remove these packages and use the ones that come bundled with Dataverse by default.

view this post on Zulip Philip Durbin 🚀 (May 14 2025 at 16:11):

Sure, sounds good.


Last updated: Oct 30 2025 at 05:14 UTC