Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

blocked deposit page, hide host field when only one collection (e.g. root) #11301

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

jo-pol
Copy link
Contributor

@jo-pol jo-pol commented Mar 4, 2025

What this PR does / why we need it:

A dataset is not saved and there is no option to correct the mistake if you edit the “Host Dataverse” field and immediately correct and leave it. When clicking Save the page freezes and after a hard refresh all your metadata is gone and you have to start over. Reproduced in 6.3 and 6.5 (DANS branches).

A more robust solution is not to show the edit field at al when there is nothing to choose.

Which issue(s) this PR closes:

  • Closes #

Special notes for your reviewer:

Suggestions on how to test this:

  1. In the user interface click Add Data → New Dataset
  2. The cursor is placed in the “Host Dataverse” field.
  3. Type a space, remove it and quickly put the cursor in the title field.
  4. Fill in the required fields and click Save.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:

Is there a release notes update needed for this change?:

Perhaps: the host dataverse field does not appear when there are none to choose from.

Additional documentation:

@pdurbin pdurbin added the Size: 3 A percentage of a sprint. 2.1 hours. label Mar 4, 2025
@qqmyers
Copy link
Member

qqmyers commented Mar 4, 2025

Can you reproduce this on demo (which is v6.5)? The code changes look OK but I haven't yet been able to trigger the problem on demo.dataverse.org.

@pdurbin
Copy link
Member

pdurbin commented Mar 5, 2025

I believe I was able to reproduce the bug on ab8110f (the latest in develop).

The page is greyed out like this:

Screenshot 2025-03-05 at 2 33 29 PM

Stacktrace:

dev_dataverse> [#|2025-03-05T19:32:37.841+0000|WARNING|Payara 6.2024.6|jakarta.enterprise.resource.webcontainer.faces.lifecycle|_ThreadID=275;_ThreadName=http-thread-pool::http-listener-1(6);_TimeMillis=1741203157841;_LevelValue=900;|
dev_dataverse>   For input string: "Root"
dev_dataverse> java.lang.NumberFormatException: For input string: "Root"
dev_dataverse> 	at java.base/java.lang.NumberFormatException.forInputString(Unknown Source)
dev_dataverse> 	at java.base/java.lang.Long.parseLong(Unknown Source)
dev_dataverse> 	at java.base/java.lang.Long.<init>(Unknown Source)
dev_dataverse> 	at edu.harvard.iq.dataverse.DataverseConverter.getAsObject(DataverseConverter.java:29)
dev_dataverse> 	at org.primefaces.component.autocomplete.AutoCompleteRenderer.getConvertedValue(AutoCompleteRenderer.java:803)
dev_dataverse> 	at jakarta.faces.component.UIInput.getConvertedValue(UIInput.java:901)
dev_dataverse> 	at jakarta.faces.component.UIInput.validate(UIInput.java:816)
dev_dataverse> 	at jakarta.faces.component.UIInput.executeValidate(UIInput.java:1093)
dev_dataverse> 	at jakarta.faces.component.UIInput.processValidators(UIInput.java:586)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIForm.processValidators(UIForm.java:222)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1257)
dev_dataverse> 	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:49)
dev_dataverse> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
dev_dataverse> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:159)
dev_dataverse> 	at jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:691)
dev_dataverse> 	at jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
dev_dataverse> 	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1554)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:331)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:83)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
dev_dataverse> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:166)
dev_dataverse> 	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:757)
dev_dataverse> 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:577)
dev_dataverse> 	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
dev_dataverse> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:158)
dev_dataverse> 	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:372)
dev_dataverse> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:239)
dev_dataverse> 	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
dev_dataverse> 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
dev_dataverse> 	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
dev_dataverse> 	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
dev_dataverse> 	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
dev_dataverse> 	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
dev_dataverse> 	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
dev_dataverse> 	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
dev_dataverse> 	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
dev_dataverse> 	at java.base/java.lang.Thread.run(Unknown Source)
dev_dataverse> |#]
dev_dataverse> 
dev_dataverse> [#|2025-03-05T19:32:37.846+0000|SEVERE|Payara 6.2024.6|jakarta.enterprise.resource.webcontainer.faces.context|_ThreadID=275;_ThreadName=http-thread-pool::http-listener-1(6);_TimeMillis=1741203157846;_LevelValue=1000;|
dev_dataverse>   java.lang.NumberFormatException: For input string: "Root"
dev_dataverse> java.lang.NumberFormatException: For input string: "Root"
dev_dataverse> 	at java.base/java.lang.NumberFormatException.forInputString(Unknown Source)
dev_dataverse> 	at java.base/java.lang.Long.parseLong(Unknown Source)
dev_dataverse> 	at java.base/java.lang.Long.<init>(Unknown Source)
dev_dataverse> 	at edu.harvard.iq.dataverse.DataverseConverter.getAsObject(DataverseConverter.java:29)
dev_dataverse> 	at org.primefaces.component.autocomplete.AutoCompleteRenderer.getConvertedValue(AutoCompleteRenderer.java:803)
dev_dataverse> 	at jakarta.faces.component.UIInput.getConvertedValue(UIInput.java:901)
dev_dataverse> 	at jakarta.faces.component.UIInput.validate(UIInput.java:816)
dev_dataverse> 	at jakarta.faces.component.UIInput.executeValidate(UIInput.java:1093)
dev_dataverse> 	at jakarta.faces.component.UIInput.processValidators(UIInput.java:586)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIForm.processValidators(UIForm.java:222)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processValidators(UIComponentBase.java:907)
dev_dataverse> 	at jakarta.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1257)
dev_dataverse> 	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:49)
dev_dataverse> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
dev_dataverse> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:159)
dev_dataverse> 	at jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:691)
dev_dataverse> 	at jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
dev_dataverse> 	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1554)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:331)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:83)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
dev_dataverse> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:166)
dev_dataverse> 	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:757)
dev_dataverse> 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:577)
dev_dataverse> 	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
dev_dataverse> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:158)
dev_dataverse> 	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:372)
dev_dataverse> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:239)
dev_dataverse> 	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
dev_dataverse> 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
dev_dataverse> 	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
dev_dataverse> 	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
dev_dataverse> 	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
dev_dataverse> 	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
dev_dataverse> 	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
dev_dataverse> 	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
dev_dataverse> 	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
dev_dataverse> 	at java.base/java.lang.Thread.run(Unknown Source)
dev_dataverse> |#]

@pdurbin
Copy link
Member

pdurbin commented Mar 5, 2025

I tried again and I was able to reproduce it again.

One difference for me, perhaps, is that after a hard-reset the fields I entered are still there, with the exception of the Subject field. So I don't lose all of my work, but still, it's a very annoying user experience!

@pdurbin
Copy link
Member

pdurbin commented Mar 5, 2025

@jo-pol I switched to this branch/PR and the stacktrace looks different but I have the same behavior in the UI. The screen goes gray-ish and the dataset isn't saved.

Screenshot 2025-03-05 at 2 43 10 PM

dev_dataverse> [#|2025-03-05T19:42:38.837+0000|INFO|Payara 6.2024.6|com.ocpsoft.pretty.faces.config.spi.DefaultXMLConfigurationProvider|_ThreadID=286;_ThreadName=http-thread-pool::http-listener-1(7);_TimeMillis=1741203758837;_LevelValue=800;|
dev_dataverse>   loadConfiguration called...|#]
dev_dataverse> 
dev_dataverse> [#|2025-03-05T19:42:39.430+0000|SEVERE|Payara 6.2024.6|jakarta.enterprise.resource.webcontainer.faces.context|_ThreadID=286;_ThreadName=http-thread-pool::http-listener-1(7);_TimeMillis=1741203759430;_LevelValue=1000;|
dev_dataverse>   jakarta.faces.component.UpdateModelException: java.lang.IllegalArgumentException: Cannot convert Root of type class java.lang.String to class edu.harvard.iq.dataverse.Dataverse
dev_dataverse> jakarta.faces.component.UpdateModelException: java.lang.IllegalArgumentException: Cannot convert Root of type class java.lang.String to class edu.harvard.iq.dataverse.Dataverse
dev_dataverse> 	at jakarta.faces.component.UIInput.updateModel(UIInput.java:721)
dev_dataverse> 	at jakarta.faces.component.UIInput.processUpdates(UIInput.java:622)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:938)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:938)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:938)
dev_dataverse> 	at jakarta.faces.component.UIForm.processUpdates(UIForm.java:253)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:938)
dev_dataverse> 	at jakarta.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:938)
dev_dataverse> 	at jakarta.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1305)
dev_dataverse> 	at com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:50)
dev_dataverse> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
dev_dataverse> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:159)
dev_dataverse> 	at jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:691)
dev_dataverse> 	at jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
dev_dataverse> 	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1554)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:331)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:83)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:253)
dev_dataverse> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:211)
dev_dataverse> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
dev_dataverse> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:166)
dev_dataverse> 	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:757)
dev_dataverse> 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:577)
dev_dataverse> 	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
dev_dataverse> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:158)
dev_dataverse> 	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:372)
dev_dataverse> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:239)
dev_dataverse> 	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
dev_dataverse> 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
dev_dataverse> 	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
dev_dataverse> 	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
dev_dataverse> 	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
dev_dataverse> 	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
dev_dataverse> 	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
dev_dataverse> 	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
dev_dataverse> 	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
dev_dataverse> 	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
dev_dataverse> 	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
dev_dataverse> 	at java.base/java.lang.Thread.run(Unknown Source)
dev_dataverse> Caused by: java.lang.IllegalArgumentException: Cannot convert Root of type class java.lang.String to class edu.harvard.iq.dataverse.Dataverse
dev_dataverse> 	at org.glassfish.expressly.lang.ELSupport.coerceToType(ELSupport.java:482)
dev_dataverse> 	at org.glassfish.expressly.lang.ELSupport.coerceToType(ELSupport.java:423)
dev_dataverse> 	at org.glassfish.expressly.parser.AstValue.setValue(AstValue.java:191)
dev_dataverse> 	at org.glassfish.expressly.ValueExpressionImpl.setValue(ValueExpressionImpl.java:184)
dev_dataverse> 	at org.jboss.weld.module.web.el.WeldValueExpression.setValue(WeldValueExpression.java:64)
dev_dataverse> 	at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:95)
dev_dataverse> 	at jakarta.faces.component.UIInput.updateModel(UIInput.java:696)
dev_dataverse> 	... 48 more
dev_dataverse> |#]
dev_dataverse> 

@qqmyers
Copy link
Member

qqmyers commented Mar 5, 2025

FWIW: Looks like it only occurs when there are no templates for some reason.

@jo-pol
Copy link
Contributor Author

jo-pol commented Mar 6, 2025

@pdurbin
1: what do you mean with a hard-reset? cc @janvanmansum
2: I actually tested the code changes on a VM box with v6.5 and some patches https://github.com/DANS-KNAW/dataverse/tree/v6.5-DANS-DataStation

@jo-pol
Copy link
Contributor Author

jo-pol commented Mar 6, 2025

Tried the IQSS develop branch on a DANS v6.5 VM and got an internal DB error.

@pdurbin
Copy link
Member

pdurbin commented Mar 6, 2025

@jo-pol sorry, I was trying to use the same terminology you were. I said "hard reset" when I meant "hard refresh".

What was the internal DB error? 🤔

@jo-pol
Copy link
Contributor Author

jo-pol commented Mar 6, 2025

The DB error was

Internal Exception: org.postgresql.util.PSQLException: ERROR: column "displayoncreate" does not exist
  Position: 12
Error Code: 0
Call: SELECT ID, DISPLAYONCREATE, INCLUDE, REQUIRED, datasetfieldtype_id, dataverse_id FROM DataverseFieldTypeInputLevel WHERE (dataverse_id = ?)
	bind => [1 parameter bound]
Query: ReadAllQuery(name="dataverseFieldTypeInputLevels" referenceClass=DataverseFieldTypeInputLevel sql="SELECT ID, DISPLAYONCREATE, INCLUDE, REQUIRED, datasetfieldtype_id, dataverse_id FROM DataverseFieldTypeInputLevel WHERE (dataverse_id = ?)")

@jo-pol
Copy link
Contributor Author

jo-pol commented Mar 6, 2025

Tried returning null in stead of a string also worked on a DANS v6.5 VM. Examining the stack trace and corresponding jakarta/faces code that would cause a null pointer exception on IQSS development. So now I used zero as default. Don't know about the effects on templates and/or when the initial dataverse was another one.

@jo-pol
Copy link
Contributor Author

jo-pol commented Mar 6, 2025

Not sure but I might have stayed on the page https://dev.archaeology.datastations.nl/dataset.xhtml?ownerId=1 when redeploying the war when I saw the DB error.

@pdurbin
Copy link
Member

pdurbin commented Mar 6, 2025

ERROR: column "displayoncreate" does not exist

Right, sorry, that was our bad. Fixed in this PR:

@cmbz cmbz added FY25 Sprint 19 FY25 Sprint 19 (2025-03-12 - 2025-03-26) FY25 Sprint 18 FY25 Sprint 18 (2025-02-26 - 2025-03-12) labels Mar 12, 2025
@pdurbin
Copy link
Member

pdurbin commented Mar 19, 2025

@jo-pol we just released Dataverse 6.6. Can you please merge the latest from develop into this branch?

Also, as I said above, I can definitely reproduce some strangeness but this pull request doesn't seem to help (the error in server.log was different). Am I missing something? Thanks!

@jo-pol
Copy link
Contributor Author

jo-pol commented Mar 25, 2025

@pdurbin
Did you retry after the commit using zero as default search argument?

@coveralls
Copy link

Coverage Status

coverage: 22.733% (-0.001%) from 22.734%
when pulling 95860a6 on DANS-KNAW-jp:blocked-deposit-page
into efbbd18 on IQSS:develop.

@pdurbin pdurbin changed the title blocked deposit page blocked deposit page, hide host field when only one collection (e.g. root) Mar 25, 2025
@pdurbin
Copy link
Member

pdurbin commented Mar 25, 2025

@jo-pol I just tried and no, I was testing an earlier commit last time. This time I'm on the latest (95860a6) and I couldn't reproduce the bug! 🎉 Perfect! 🚀

I noticed that you added a hasDataversesToChoose boolean. I took the liberty of updating the title of this pull request to reflect this.

Under "Does this PR introduce a user interface change?" can you please upload "before" and "after" screenshots or at least describe the change?

Do you want this hasDataversesToChoose behavior to continue in the new React UI? If so, please open an issue at https://github.com/IQSS/dataverse-frontend

Finally, could you please also add a release note snippet to this PR? You could call it doc/release-notes/11301blocked-deposit-page.md and write a sentence or two about what this pull request does.

p.s. I noticed API tests are failing but it was a problem with Jenkins/AWS so I started another build. Since this is a frontend change, it shouldn't affect API tests.

@cmbz cmbz added the FY25 Sprint 20 FY25 Sprint 20 (2025-03-26 - 2025-04-09) label Mar 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FY25 Sprint 18 FY25 Sprint 18 (2025-02-26 - 2025-03-12) FY25 Sprint 19 FY25 Sprint 19 (2025-03-12 - 2025-03-26) FY25 Sprint 20 FY25 Sprint 20 (2025-03-26 - 2025-04-09) Size: 3 A percentage of a sprint. 2.1 hours.
Projects
Status: In Review 🔎
Development

Successfully merging this pull request may close these issues.

5 participants