← Back to team overview

dhis2-devs team mailing list archive

Re: Validation Rules Via /api/##/metadata?

 

Hi

I have started to look at this now, just a quick question.. when you say
one of the latest builds? from when was it? there was a bunch of these
kinds of issues fixed last week (transient object xyz)

-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Wed, Nov 16, 2016 at 1:15 AM, Morten Olav Hansen <morten@xxxxxxxxx>
wrote:

> Hi Tim
>
> Will have a look tomorrow, probably requires a bit of special handling.
>
> --
> Morten Olav Hansen
> Senior Engineer, DHIS 2
> University of Oslo
> http://www.dhis2.org
>
> On Tue, Nov 15, 2016 at 10:52 PM, Timothy Harding <tharding@xxxxxxxxxxxxxx
> > wrote:
>
>> Hello hello!
>>
>> Jim Grace and I have been attempting to upload validation rules via the
>> (new?) /##/metadata, currently we are using one of the latest builds of
>> 2.24.
>>
>> When I upload via the import metadata via the gui it works as well as
>> uploading to the older /api/metaData/
>> * INFO  2016-11-15 15:47:28,262 Import done. Completed in 2274.20
>> seconds. (DefaultImportService.java [http-nio-18080-exec-8])
>>
>> But when I use the newer location below it fails and gives me this
>> response back:
>>
>> {"httpStatus":"Internal Server Error","httpStatusCode":500,"s
>> tatus":"ERROR","message":"object references an unsaved transient
>> instance - save the transient instance before flushing:
>> org.hisp.dhis.dataelement.DataElement"}
>>
>> Error using /api/24/metadata
>>
>> * INFO  2016-11-15 15:04:10,802 (system_dev-mer2.datim.org) Import:Start
>> (DefaultMetadataImportService.java [http-nio-18080-exec-20])
>> * INFO  2016-11-15 15:04:16,319 (system_dev-mer2.datim.org)
>> Import:Preheat[REFERENCE] took 5.51 seconds (DefaultPreheatService.java
>> [http-nio-18080-exec-20])
>> * INFO  2016-11-15 15:04:16,323 (system_dev-mer2.datim.org)
>> Import:Validation took 0.00 seconds (DefaultObjectBundleValidationService.java
>> [http-nio-18080-exec-20])
>> * INFO  2016-11-15 15:04:16,324 (system_dev-mer2.datim.org) Updating 184
>> object(s) of type ValidationRule (DefaultObjectBundleService.java
>> [http-nio-18080-exec-20])
>> org.hibernate.TransientObjectException: object references an unsaved
>> transient instance - save the transient instance before flushing:
>> org.hisp.dhis.dataelement.DataElement
>> at org.hibernate.engine.internal.ForeignKeys.getEntityIdentifie
>> rIfNotUnsaved(ForeignKeys.java:279)
>> at org.hibernate.type.EntityType.getIdentifier(EntityType.java:455)
>> at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:144)
>> at org.hibernate.persister.collection.AbstractCollectionPersist
>> er.writeElement(AbstractCollectionPersister.java:888)
>> at org.hibernate.persister.collection.AbstractCollectionPersist
>> er.recreate(AbstractCollectionPersister.java:1307)
>> at org.hibernate.action.internal.CollectionRecreateAction.execu
>> te(CollectionRecreateAction.java:50)
>> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQu
>> eue.java:560)
>> at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQu
>> eue.java:434)
>> at org.hibernate.event.internal.AbstractFlushingEventListener.p
>> erformExecutions(AbstractFlushingEventListener.java:337)
>> at org.hibernate.event.internal.DefaultFlushEventListener.onFlu
>> sh(DefaultFlushEventListener.java:39)
>> at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1295)
>> at org.hisp.dhis.dxf2.metadata2.objectbundle.DefaultObjectBundl
>> eService.commit(DefaultObjectBundleService.java:156)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>> ssorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>> thodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at org.springframework.aop.support.AopUtils.invokeJoinpointUsin
>> gReflection(AopUtils.java:302)
>> at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:157)
>> at org.springframework.transaction.interceptor.TransactionInter
>> ceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>> at org.springframework.transaction.interceptor.TransactionAspec
>> tSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>> at org.springframework.transaction.interceptor.TransactionInter
>> ceptor.invoke(TransactionInterceptor.java:96)
>> at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:179)
>> at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
>> JdkDynamicAopProxy.java:208)
>> at com.sun.proxy.$Proxy189.commit(Unknown Source)
>> at org.hisp.dhis.dxf2.metadata2.DefaultMetadataImportService.im
>> portMetadata(DefaultMetadataImportService.java:104)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>> ssorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>> thodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at org.springframework.aop.support.AopUtils.invokeJoinpointUsin
>> gReflection(AopUtils.java:302)
>> at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:157)
>> at org.springframework.transaction.interceptor.TransactionInter
>> ceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>> at org.springframework.transaction.interceptor.TransactionAspec
>> tSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>> at org.springframework.transaction.interceptor.TransactionInter
>> ceptor.invoke(TransactionInterceptor.java:96)
>> at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:179)
>> at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
>> JdkDynamicAopProxy.java:208)
>> at com.sun.proxy.$Proxy191.importMetadata(Unknown Source)
>> at org.hisp.dhis.webapi.controller.metadata.MetadataImportContr
>> oller.postJsonMetadata(MetadataImportController.java:87)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>> ssorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>> thodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at org.springframework.web.method.support.InvocableHandlerMetho
>> d.doInvoke(InvocableHandlerMethod.java:221)
>> at org.springframework.web.method.support.InvocableHandlerMetho
>> d.invokeForRequest(InvocableHandlerMethod.java:136)
>> at org.springframework.web.servlet.mvc.method.annotation.Servle
>> tInvocableHandlerMethod.invokeAndHandle(ServletInvocableHand
>> lerMethod.java:110)
>> at org.springframework.web.servlet.mvc.method.annotation.Reques
>> tMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHan
>> dlerAdapter.java:817)
>> at org.springframework.web.servlet.mvc.method.annotation.Reques
>> tMappingHandlerAdapter.handleInternal(RequestMappingHandlerA
>> dapter.java:731)
>> at org.springframework.web.servlet.mvc.method.AbstractHandlerMe
>> thodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
>> at org.springframework.web.servlet.DispatcherServlet.doDispatch
>> (DispatcherServlet.java:959)
>> at org.springframework.web.servlet.DispatcherServlet.doService(
>> DispatcherServlet.java:893)
>> at org.springframework.web.servlet.FrameworkServlet.processRequ
>> est(FrameworkServlet.java:968)
>> at org.springframework.web.servlet.FrameworkServlet.doPost(
>> FrameworkServlet.java:870)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
>> at org.springframework.web.servlet.FrameworkServlet.service(
>> FrameworkServlet.java:844)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:303)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:330)
>> at org.springframework.security.web.access.intercept.FilterSecu
>> rityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>> at org.springframework.security.web.access.intercept.FilterSecu
>> rityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.access.ExceptionTranslation
>> Filter.doFilter(ExceptionTranslationFilter.java:113)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.session.SessionManagementFi
>> lter.doFilter(SessionManagementFilter.java:103)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AnonymousAut
>> henticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.servletapi.SecurityContextH
>> olderAwareRequestFilter.doFilter(SecurityContextHolder
>> AwareRequestFilter.java:154)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.savedrequest.RequestCacheAw
>> areFilter.doFilter(RequestCacheAwareFilter.java:45)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.www.BasicAut
>> henticationFilter.doFilter(BasicAuthenticationFilter.java:201)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.hisp.dhis.security.filter.CorsFilter.doFilter(CorsFilter.java:91)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AbstractAuth
>> enticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:199)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AbstractAuth
>> enticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:199)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.hisp.dhis.security.filter.CustomAuthenticationFilter.doF
>> ilter(CustomAuthenticationFilter.java:64)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.oauth2.provider.authentication.
>> OAuth2AuthenticationProcessingFilter.doFilter(OAuth2Authenti
>> cationProcessingFilter.java:140)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.logout.Logou
>> tFilter.doFilter(LogoutFilter.java:110)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter
>> (AutomaticAccessFilter.java:115)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.header.HeaderWriterFilter.d
>> oFilterInternal(HeaderWriterFilter.java:57)
>> at org.springframework.web.filter.OncePerRequestFilter.doFilter
>> (OncePerRequestFilter.java:107)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.context.request.async.WebAs
>> yncManagerIntegrationFilter.doFilterInternal(WebAsyncManag
>> erIntegrationFilter.java:50)
>> at org.springframework.web.filter.OncePerRequestFilter.doFilter
>> (OncePerRequestFilter.java:107)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.context.SecurityContextPers
>> istenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>> at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.FilterChainProxy.doFilterIn
>> ternal(FilterChainProxy.java:192)
>> at org.springframework.security.web.FilterChainProxy.doFilter(F
>> ilterChainProxy.java:160)
>> at org.springframework.web.filter.DelegatingFilterProxy.invokeD
>> elegate(DelegatingFilterProxy.java:346)
>> at org.springframework.web.filter.DelegatingFilterProxy.doFilte
>> r(DelegatingFilterProxy.java:262)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>> at org.springframework.web.filter.ShallowEtagHeaderFilter.doFil
>> terInternal(ShallowEtagHeaderFilter.java:87)
>> at org.hisp.dhis.servlet.filter.ExcludableShallowEtagHeaderFilt
>> er.doFilterInternal(ExcludableShallowEtagHeaderFilter.java:102)
>> at org.springframework.web.filter.OncePerRequestFilter.doFilter
>> (OncePerRequestFilter.java:107)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>> at org.springframework.orm.hibernate5.support.OpenSessionInView
>> Filter.doFilterInternal(OpenSessionInViewFilter.java:151)
>> at org.springframework.web.filter.OncePerRequestFilter.doFilter
>> (OncePerRequestFilter.java:107)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>> at org.springframework.web.filter.CharacterEncodingFilter.doFil
>> terInternal(CharacterEncodingFilter.java:121)
>> at org.springframework.web.filter.OncePerRequestFilter.doFilter
>> (OncePerRequestFilter.java:107)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar
>> dWrapperValve.java:220)
>> at org.apache.catalina.core.StandardContextValve.invoke(Standar
>> dContextValve.java:122)
>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A
>> uthenticatorBase.java:505)
>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo
>> stValve.java:169)
>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo
>> rtValve.java:103)
>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa
>> lve.java:956)
>> at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValv
>> e.java:683)
>> at org.apache.catalina.core.StandardEngineValve.invoke(Standard
>> EngineValve.java:116)
>> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd
>> apter.java:436)
>> at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>> tractHttp11Processor.java:1078)
>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler
>> .process(AbstractProtocol.java:625)
>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun
>> (NioEndpoint.java:1757)
>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(
>> NioEndpoint.java:1716)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>> Executor.java:1142)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>> lExecutor.java:617)
>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.
>> run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>>
>> Any ideas? Should we stick with /api/metaData for now? I ask mostly
>> because this method takes more than 360 seconds currently with preheat off
>> and 2200+ seconds with it on.
>>
>>
>> *Timothy Harding*
>> Sr. Systems Analyst, BAO Systems
>> +1 202-536-1541 | tharding@xxxxxxxxxxxxxx | http://www.baosystems.com | Skype:
>> hardingt@xxxxxxxxx | 2900 K Street, Suite 404, Washington D.C. 20007
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>

PNG image


Follow ups

References