Dataset save failed with custom metadata issue

113 views
Skip to first unread message

bjyo...@ncsu.edu

unread,
Jun 3, 2016, 3:09:24 PM6/3/16
to Dataverse Users Community
Hello, 
I have been having an issue saving a new dataset when a custom metadata TSV is used. For some reason, when adding a new dataset in a dataverse which utilizes a custom metadata document, saving (with save Dataset button) fails with error: 'Dataset Save Failed  - edu.harvard.iq.dataverse.engine.command.exception.CommandException: Command [DatasetCreate dataset:null] failed: null'

When using a dataverse which does not require this custom metadata (and the same information is inputted), saves succeed with no issues. 

I have attached the custom metadata TSV, and server info and an excerpt from the glassfish server.log is below:

OS: CentOS 7
Standard install procedures from here followed, dataverseAdmin attempts to input data.

--- server.log excerpt ---

javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted

at com.sun.ejb.containers.EJBContainerTransactionManager.useClientTx(EJBContainerTransactionManager.java:357)

at com.sun.ejb.containers.EJBContainerTransactionManager.preInvokeTx(EJBContainerTransactionManager.java:251)

at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:4524)

at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1986)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:210)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)

at com.sun.proxy.$Proxy197.getAuthenticatedUser(Unknown Source)

at edu.harvard.iq.dataverse.authorization.__EJB31_Generated__AuthenticationServiceBean__Intf____Bean__.getAuthenticatedUser(Unknown Source)

at edu.harvard.iq.dataverse.engine.command.impl.CreateDatasetCommand.execute(CreateDatasetCommand.java:205)

at edu.harvard.iq.dataverse.engine.command.impl.CreateDatasetCommand.execute(CreateDatasetCommand.java:39)

at edu.harvard.iq.dataverse.EjbDataverseEngine.submit(EjbDataverseEngine.java:184)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)

at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)

at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)

at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)

at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)

at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)

at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)

at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)

at sun.reflect.GeneratedMethodAccessor83.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)

at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)

at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)

at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)

at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)

at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)

at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)

at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)

at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)

at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)

at com.sun.proxy.$Proxy292.submit(Unknown Source)

at edu.harvard.iq.dataverse.__EJB31_Generated__EjbDataverseEngine__Intf____Bean__.submit(Unknown Source)

at edu.harvard.iq.dataverse.DatasetPage.save(DatasetPage.java:2685)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.sun.el.parser.AstValue.invoke(AstValue.java:289)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)

at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)

at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:295)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:205)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)

at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)

at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)

at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)

at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)

at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)

at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)

at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)

at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)

at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)

at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)

at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)

at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)

at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)

at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)

at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)

at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)

at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)

at java.lang.Thread.run(Thread.java:745)

]]


[2016-06-03T14:58:43.095-0400] [glassfish 4.1] [SEVERE] [] [edu.harvard.iq.dataverse.DatasetPage] [tid: _ThreadID=27 _ThreadName=http-listener-1(2)] [timeMillis: 1464980323095] [levelValue: 1000] [[

  Command [DatasetCreate dataset:null] failed: null]]

---

customLAS_final.tsv

Philip Durbin

unread,
Jun 3, 2016, 3:20:51 PM6/3/16
to dataverse...@googlegroups.com
Custom metadata blocks are not well supported. For now we envision the community working with us to help define them.

I don't see "solr" anywhere in the stack trace you provided (keep looking and you may find it) but I'm guessing that you'll need to update your Solr schema. This is mentioned as "WARNING: In order to use a new metadata block, a new SOLR schema must be created." at https://docs.google.com/document/d/1idh4wvCcoxSo7rPkolOkTD5Wvn6PQO__uXqkf7eQujA/edit?usp=sharing

http://localhost:8080/api/admin/index/solr/schema should provide you with a list of all the fields and the ones you added need to be added to your Solr schema.xml.

I hope this helps. Custom metadata blocks are not for the faint of heart!
 

--
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 post to this group, send email to dataverse...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/50e28f41-6a58-4319-a581-51c46f85ba63%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Sherry Lake

unread,
Jun 4, 2016, 8:30:15 AM6/4/16
to Dataverse Users Community
I've worked on customized metadata for our UVA dataverse. Since I am not sure what you have tried yet, here's a question:

Is your customized metadata in addition to the citation metadata?  The citation metadata (at least the required fields) are required and according to the discussion on this thread Any v. 4.X Sites out there? Customizations?:
Please note, though, you shouldn't change any of the currently required ones to be not required, as the application expects this.

The only other thing I see in your TSV file is that the display order starts with "1" and not "0" (for both your fields and controlled vocab). This might cause problems if the code starts searching at index "0" in the database and there isn't any thing there, or it's NULL?? This is just a guess as all Harvard's tsv metadata files start with "0".

Here's a thread and a google doc where documentation for the metadata schemes is described (or at least where things are being fleshed out). And if your problem is with the display order (and it needs to start with "0"), then we need to add that detail:

documentation for metadata block import format
    https://docs.google.com/document/d/1idh4wvCcoxSo7rPkolOkTD5Wvn6PQO__uXqkf7eQujA/edit#heading=h.xqa9co8gtrwh  

--
Sherry Lake

bjyo...@ncsu.edu

unread,
Jun 6, 2016, 9:27:56 AM6/6/16
to Dataverse Users Community
Thank you both, after making both changes the issue seems to be resolved. In this case I think the solr schema.xml modification fixed the issue. If I later determine that having a zero-indexed TSV is also essential (I did make that change as well), I'll be sure to suggest that change in the document you mentioned earlier.

Thanks again


On Friday, June 3, 2016 at 3:09:24 PM UTC-4, bjyo...@ncsu.edu wrote:
Reply all
Reply to author
Forward
0 new messages