At this stage, the 500 error on the front page has disappeared, but no dataset or dataverse is visible.
I am at a standstill because I cannot interpret this error message:
[2024-09-25T13:55:23.015+0000] [Payara 6.2024.9] [SEVERE] [] [jakarta.enterprise.resource.webcontainer.faces.application] [tid: _ThreadID=88 _ThreadName=http-thread-pool::jk-connector(4)] [timeMillis: 1727272523015] [levelValue: 1000] [[
Error Rendering View[/dataset.xhtml]
jakarta.el.ELException: /metadataFragment.xhtml @21,162 rendered="#{!(empty mdLang and mdlangCode!='undefined')}": /dataset.xhtml @952,145 value="#{DatasetPage.getLocaleDisplayName(DatasetPage.effectiveMetadataLanguage)}": java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "code" is null
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:77)
at jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:188)
at jakarta.faces.component.UIComponentBase.isRendered(UIComponentBase.java:308)
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:556)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1435)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
at org.primefaces.component.tabview.TabViewRenderer.encodeTabContent(TabViewRenderer.java:308)
at org.primefaces.component.tabview.TabViewRenderer.lambda$encodeContents$1(TabViewRenderer.java:279)
at org.primefaces.component.tabview.TabView.forEachTab(TabView.java:188)
at org.primefaces.component.tabview.TabViewRenderer.encodeContents(TabViewRenderer.java:277)
at org.primefaces.component.tabview.TabViewRenderer.encodeMarkup(TabViewRenderer.java:154)
at org.primefaces.component.tabview.TabViewRenderer.encodeEnd(TabViewRenderer.java:92)
at jakarta.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:585)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:265)
at com.sun.faces.renderkit.html_basic.PassthroughRenderer.encodeChildren(PassthroughRenderer.java:75)
at jakarta.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:556)
at jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1435)
at jakarta.faces.render.Renderer.encodeChildren(Renderer.java:146)
at jakarta.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:556)
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 com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:449)
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.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)
Caused by: jakarta.el.ELException: /dataset.xhtml @952,145 value="#{DatasetPage.getLocaleDisplayName(DatasetPage.effectiveMetadataLanguage)}": java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "code" is null
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:77)
at org.glassfish.expressly.parser.AstIdentifier.getValue(AstIdentifier.java:92)
at org.glassfish.expressly.parser.AstEmpty.getValue(AstEmpty.java:44)
at org.glassfish.expressly.parser.AstAnd.getValue(AstAnd.java:34)
at org.glassfish.expressly.parser.AstNot.getValue(AstNot.java:41)
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)
... 69 more
Caused by: jakarta.el.ELException: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "code" is null
at jakarta.el.ELUtil.invokeMethod(ELUtil.java:221)
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)
... 76 more
Caused by: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "code" is null
at edu.harvard.iq.dataverse.DatasetPage.getLocaleDisplayName(DatasetPage.java:6146)
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 jakarta.el.ELUtil.invokeMethod(ELUtil.java:215)
... 83 more
]]
Alfredo,
Very tricky issue. It looks like the underlying code isn’t handling a null value well, but I initially could not trigger the problem. I was finally able to reproduce this by setting a bad value for the :MetadataLanguages setting (valid JSON, but the content not being what the setting expects), e.g.
curl -X PUT -d ‘[{“one”:”two”}]’ http://localhost:8080/api/admin/settings/:MetadataLanguages
deleting that setting or adding a valid value (see https://guides.dataverse.org/en/latest/installation/config.html#allowing-the-language-used-for-dataset-metadata-to-be-specified for an example with English and French) got rid of the problem.
Hopefully your issue is the same and if you delete or correct that setting things will work.
-- Jim
--
You received this message because you are subscribed to the Google Groups "Dataverse Users Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
dataverse-commu...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/dataverse-community/f1b37f5b-b43f-4378-abde-4e42ebf8a024n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/548cc06d-1300-41bd-b31c-beebb6fa62a3n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/54133d57-2048-4deb-9c7c-c2c1dee17ca0n%40googlegroups.com.
It’s possible that the :MetadataLanguages setting is cached somewhere, so restarting payara is a reasonable test. Beyond that, can you confirm that
curl http://localhost:8080/api/admin/settings/:MetadataLanguages returns 404 not found?
And can you confirm whether doing
curl -x PUT -d ‘[{“locale”:”en”, “title”:”English”}]’ http://localhost:8080/api/admin/settings/:MetadataLanguages
solve the problem or not? (Even as a temporary solution.)
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/54133d57-2048-4deb-9c7c-c2c1dee17ca0n%40googlegroups.com.
curl http://localhost:8080/api/admin/settings/:MetadataLanguages returns 404 not found?
curl -x PUT -d ‘[{“locale”:”en”, “title”:”English”}]’ http://localhost:8080/api/admin/settings/:MetadataLanguages
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:77)
2024-09-25T13:55:23.015+0000] [Payara 6.2024.9] [SEVERE] [] [jakarta.enterprise.resource.webcontainer.faces.application] [tid: _ThreadID=88 _ThreadName=http-thread-pool::jk-connector(4)] [timeMillis: 1727272523015] [levelValue: 1000] [[
(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 jakarta.el.ELUtil.invokeMethod(ELUtil.java:215)
... 83 more
]]
--
You received this message because you are subscribed to the Google Groups "Dataverse Users Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dataverse-commu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/f1b37f5b-b43f-4378-abde-4e42ebf8a024n%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Dataverse Users Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dataverse-commu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/548cc06d-1300-41bd-b31c-beebb6fa62a3n%40googlegroups.com.