Hi all,
since upgrading to dataverse 6.9 we encounter a very odd bug in our installation. When someone creates a new dataset and (for whatever reason) deletes it straight away the UI displays an "internal server error" and we find a warning in the payara logs.
UI error
payara log
The same error occurs sometimes when the last dataset inside of a collection is deleted
last dataset
By debugging we ended at DatasetPage.java lines 3130-3136
debugging
We are out of ideas how to proceed to find the root cause of the bug and fix it. Any hints are highly appreciated.
The problem with getting a clue about what's going on is related to how exceptions are treated in EJBs. Unless you throw custom exceptions that are annotated as being an @ApplicationException, EJB will always wrap any bubbling exceptions into their own (making sure it handles transaction rollbacks properly). So the log output you screenshotted is good, but there should be more related output around it regarding the exception with a root cause. Can you please add that output as well? (Also, please don't be afraid to paste them instead of a screenshot. Makes reading them easier sometimes.)
I tried to reproduce this problem with a freshly deployed local Dataverse instance (using containers). I wasn't able to trigger the seen behaviour for an unpublished dataset nor for an unpublished dataset version.
I did not add any files to the dataset though... Your debugging so far may suggest this is related to File IO. (It's always good to confirm this to limit the possibilities where a bug may be hiding.)
Hi, thanks for getting back. We also tried with a fresh install and could not reproduce the error. Importing our db also didn't trigger the bug. We think it might be related to indexing. Here is the output form the payara logs anyways:
[2026-01-23T11:47:51.382+0100] [Payara 6.2025.10] [WARNING] [AS-EJB-00056] [jakarta.enterprise.ejb.container] [tid: _ThreadID=102 _ThreadName=http-thread-pool::jk-connector(2)] [timeMillis: 1769165271382] [levelValue: 900] [[
A system exception occurred during an invocation on EJB PermissionServiceBean, method: public edu.harvard.iq.dataverse.PermissionServiceBean$RequestPermissionQuery edu.harvard.iq.dataverse.PermissionServiceBean.requestOn(edu.harvard.iq.dataverse.engine.command.DataverseRequest,edu.harvard.iq.dataverse.DvObject)]]
[2026-01-23T11:47:51.382+0100] [Payara 6.2025.10] [WARNING] [] [jakarta.enterprise.ejb.container] [tid: _ThreadID=102 _ThreadName=http-thread-pool::jk-connector(2)] [timeMillis: 1769165271382] [levelValue: 900] [[
jakarta.ejb.EJBException
at com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java:723)
at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:652)
at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:482)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4601)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2134)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2104)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:90)
at jdk.proxy71/jdk.proxy71.$Proxy407.requestOn(Unknown Source)
at edu.harvard.iq.dataverse.__EJB31_Generated__PermissionServiceBean__Intf____Bean__.requestOn(Unknown Source)
at edu.harvard.iq.dataverse.PermissionsWrapper.doesSessionUserHaveDataSetPermission(PermissionsWrapper.java:191)
at edu.harvard.iq.dataverse.PermissionsWrapper.canViewUnpublishedDataset(PermissionsWrapper.java:154)
at edu.harvard.iq.dataverse.PermissionsWrapper$Proxy$_$$_WeldClientProxy.canViewUnpublishedDataset(Unknown Source)
at edu.harvard.iq.dataverse.search.SearchIncludeFragment.canSeeCurationStatus(SearchIncludeFragment.java:1559)
at jdk.internal.reflect.GeneratedMethodAccessor816.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at jakarta.el.ELUtil.invokeMethod(ELUtil.java:215)
at jakarta.el.BeanELResolver.invoke(BeanELResolver.java:487)
at jakarta.el.CompositeELResolver.invoke(CompositeELResolver.java:198)
at org.glassfish.expressly.parser.AstValue.getValue(AstValue.java:298)
at org.glassfish.expressly.parser.AstValue.getValue(AstValue.java:144)
at org.glassfish.expressly.ValueExpressionImpl.getValue(ValueExpressionImpl.java:138)
at org.jboss.weld.module.web.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73)
at jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:188)
at jakarta.faces.component.UIComponentBase.isRendered(UIComponentBase.java:309)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:250)
at com.sun.faces.renderkit.html_basic.PassthroughRenderer.encodeChildren(PassthroughRenderer.java:75)
at jakarta.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:557)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:257)
at com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:351)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:135)
at jakarta.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:557)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:257)
at com.sun.faces.renderkit.html_basic.PassthroughRenderer.encodeChildren(PassthroughRenderer.java:75)
at jakarta.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:557)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1435)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:448)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:160)
at jakarta.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:125)
at jakarta.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:125)
at jakarta.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:125)
at org.omnifaces.viewhandler.OmniViewHandler.renderView(OmniViewHandler.java:151)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:93)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:150)
at jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:692)
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.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.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:816)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:527)
at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:497)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at org.ocpsoft.rewrite.servlet.impl.HttpRewriteResultHandler.handleResult(HttpRewriteResultHandler.java:42)
at org.ocpsoft.rewrite.servlet.RewriteFilter.rewrite(RewriteFilter.java:297)
at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:198)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
at edu.harvard.iq.dataverse.filter.CorsFilter.doFilter(CorsFilter.java:89)
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)
Caused by: java.lang.NullPointerException
``
@Björn Selent if you don't min - would you wrap your log output in a code block? (Three "`" ) Thanks!
Hmm:
Caused by: java.lang.NullPointerException
What's null?
edu.harvard.iq.dataverse.search.SearchIncludeFragment.canSeeCurationStatus(SearchIncludeFragment.java:1559) is:
return permissionsWrapper.canViewUnpublishedDataset(getDataverseRequest(),(Dataset) dvObjectService.findDvObject(datasetId));
This would be my next stop for trying to dig deeper.
return permissionsWrapper.canViewUnpublishedDataset(getDataverseRequest(),(Dataset) dvObjectService.findDvObject(datasetId));
So permissionsWrapper or dvObjectService is null? That would be strange.
@Björn Selent if you can replicate the bug on https://demo.dataverse.org please give us detailed steps. I wasn't able to.
No, I can't reproduce the bug on demo.dataverse.org.
But what I can see and might be related is, that after successful deleting the dataset, it is still shown in the overview until the page is reloaded
Screenshot AFTER successfully deleting the dataset
interesting
Yeah, I did recognize that too!
BTW this is also true for a draft dataset version on an already published dataset.
Sounds like two different bugs, potentially. :lady_beetle: :lady_beetle:
Last updated: Apr 03 2026 at 06:08 UTC