Dataverse 6.3: Error Rendering View[/dataset.xhtml]

115 views
Skip to first unread message

Alfredo Cosco

unread,
Sep 25, 2024, 10:34:54 AM9/25/24
to Dataverse Users Community
Hello,
through trials and errors, I managed to overcome the Solr errors during the upgrade to version 6.3 of a Dataverse instance.

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
]]

James Myers

unread,
Sep 25, 2024, 2:17:06 PM9/25/24
to dataverse...@googlegroups.com

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.

Alfredo Cosco

unread,
Sep 26, 2024, 3:43:48 AM9/26/24
to Dataverse Users Community
Thank you very much Jim.
Assuming that the instance I'm trying to upgrade has only one language: english, I removed both :Languages and :MetadataLanguages settings.
I saw in an other db and this should work.
Now there are no more errors on the server start up but the home page is empty (just the template, no dataset or dataverse listed) and in the log appears this recurring error for all the xhtml pages:

[2024-09-26T07:19:35.861+0000] [Payara 6.2024.9] [WARNING] [faces.metadata.invalid.location] [jakarta.enterprise.resource.webcontainer.faces.taglib] [tid: _ThreadID=89 _ThreadName=http-thread-pool::jk-connector(5)] [timeMillis: 1727335175861] [levelValue: 900] [[
  JSF1103: The metadata facet must be a direct child of the view in viewId /dataset.xhtml]]


[2024-09-26T07:19:37.302+0000] [Payara 6.2024.9] [SEVERE] [] [jakarta.enterprise.resource.webcontainer.faces.application] [tid: _ThreadID=89 _ThreadName=http-thread-pool::jk-connector(5)] [timeMillis: 1727335177302] [levelValue: 1000] [[

Alfredo Cosco

unread,
Sep 26, 2024, 4:36:23 AM9/26/24
to dataverse...@googlegroups.com
UPDATE: I reindexed the solr and now in the home page I can see dataverses and datasets.
The error persists in the log but I can see the site.



Alfredo Cosco

unread,
Sep 26, 2024, 9:31:57 AM9/26/24
to Dataverse Users Community
Detailed update: 
I can see the whole site except for Dataset pages.
On screen is an error 500
On the log, I see messages about the generated pages: /dataset.xthml

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



So, what if I undeploy and redeploy the application in Payara? 

Thanks,
Alfredo


Weihong Xu

unread,
Sep 26, 2024, 11:20:07 AM9/26/24
to dataverse...@googlegroups.com



--
Henry Xu
SDET Team Lead of RingCentral

Alfredo Cosco

unread,
Sep 26, 2024, 11:35:30 AM9/26/24
to Dataverse Users Community
Thanks, it might work, but I'm upgrading and I'm afraid I'll lose my existing configurations by doing so.

Alfredo

James Myers

unread,
Sep 26, 2024, 11:43:33 AM9/26/24
to dataverse...@googlegroups.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.)

Alfredo Cosco

unread,
Sep 26, 2024, 12:29:24 PM9/26/24
to Dataverse Users Community
Hello,

Yes, I confirm

 

curl -x PUT -d ‘[{“locale”:”en”, “title”:”English”}]’  http://localhost:8080/api/admin/settings/:MetadataLanguages

 

YES, it solves the big part of the problem: now I can see the datasets too.
Log is still full of warnings:
[2024-09-26T16:21:57.189+0000] [Payara 6.2024.9] [WARNING] [faces.metadata.invalid.location] [jakarta.enterprise.resource.webcontainer.faces.taglib] [tid: _ThreadID=87 _ThreadName=http-thread-pool::jk-connector(2)] [timeMillis: 1727367717189] [levelValue: 900] [[

  JSF1103: The metadata facet must be a direct child of the view in viewId /dataset.xhtml]]

But they don't seem to affect the user experience.

Thanks a lot,
Alfredo
 


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.

Reply all
Reply to author
Forward
0 new messages