Failed to upload definition by using hapi-fhir-cli v4.0
Describe the bug
hapi-fhir-jpaserver-starter v4.0 fails to upload definition by using hapi-fhir-cli v4.0 with cmd:
hapi-fhir-cli upload-definitions -t http://localhost:8080/hapi-fhir-jpaserver/fhir/ -v r4
To Reproduce
- Clone project
- Change hapi.properties to adapt MySQL 5 as DBMS
- Run hapi-fhir-jpaserver-starter in Tomcat from IntelliJ
2019-08-29 17:21:17.228 [RMI TCP Connection(2)-127.0.0.1] INFO o.s.web.context.ContextLoader [ContextLoader.java:306] Root WebApplicationContext initialized in 9801 ms
2019-08-29 17:21:17.349 [scheduledExecutorService-2] INFO c.u.f.j.s.r.BaseSearchParamRegistry [BaseSearchParamRegistry.java:311] Refreshed search parameter cache in 119ms
2019-08-29 17:21:17.548 [RMI TCP Connection(2)-127.0.0.1] INFO c.uhn.fhir.rest.server.RestfulServer [RestfulServer.java:1166] Initializing HAPI FHIR restful server running in R4 mode
2019-08-29 17:21:17.550 [RMI TCP Connection(2)-127.0.0.1] INFO c.uhn.fhir.rest.server.RestfulServer [RestfulServer.java:1545] Added 146 resource provider(s). Total 146
2019-08-29 17:21:18.008 [RMI TCP Connection(2)-127.0.0.1] INFO c.uhn.fhir.rest.server.RestfulServer [RestfulServer.java:1551] Added 3 plain provider(s). Total 3
2019-08-29 17:21:18.030 [RMI TCP Connection(2)-127.0.0.1] INFO c.uhn.fhir.rest.server.RestfulServer [RestfulServer.java:1219] A FHIR has been lit on this server
2019-08-29 17:21:18.056 [RMI TCP Connection(2)-127.0.0.1] INFO o.s.web.servlet.DispatcherServlet [FrameworkServlet.java:524] Initializing Servlet 'spring'
2019-08-29 17:21:18.756 [RMI TCP Connection(2)-127.0.0.1] INFO o.s.web.servlet.DispatcherServlet [FrameworkServlet.java:546] Completed initialization in 700 ms
[2019-08-29 05:21:18,771] Artifact hapi-fhir-jpaserver-starter:war: Artifact is deployed successfully
[2019-08-29 05:21:18,771] Artifact hapi-fhir-jpaserver-starter:war: Deploy took 19,553 milliseconds
- Download hapi-fhir-cli v4.0 and run
hapi-fhir-cli upload-definitions -t http://localhost:8080/hapi-fhir-jpaserver/fhir/ -v r4The uploading proceeds until v2-tables ValueSet 827/852 : CodeSystem/v2-0301
Detected Java version : 1.8.0_121
------------------------------------------------------------
2019-08-29 17:00:24.443 [main] INFO c.u.f.c.ValidationDataUploader Uploading definitions to server
2019-08-29 17:00:26.432 [main] INFO c.u.f.c.ValidationDataUploader Uploading ValueSet 1/1167 : CodeSystem/example (2164 bytes}
2019-08-29 17:00:28.235 [main] INFO c.u.f.c.ValidationDataUploader - Got ID: http://localhost:8080/hapi-fhir-jpaserver/fhir/CodeSystem/example/_history/1
2019-08-29 17:00:28.239 [main] INFO c.u.f.c.ValidationDataUploader Uploading ValueSet 2/1167 : CodeSystem/nhin-purposeofuse (4755 bytes}
2019-08-29 17:00:28.304 [main] INFO c.u.f.c.Vali
2019-08-29 17:01:12.608 [main] INFO c.u.f.c.ValidationDataUploader Uploading v2-tables ValueSet 824/852 : CodeSystem/v2-0548
2019-08-29 17:01:12.623 [main] INFO c.u.f.c.ValidationDataUploader Uploading v2-tables ValueSet 825/852 : CodeSystem/v2-0309
2019-08-29 17:01:12.634 [main] INFO c.u.f.c.ValidationDataUploader Uploading v2-tables ValueSet 826/852 : CodeSystem/v2-0540
2019-08-29 17:01:12.651 [main] INFO c.u.f.c.ValidationDataUploader Uploading v2-tables ValueSet 827/852 : CodeSystem/v2-0301
2019-08-29 17:01:12.777 [main] ERROR ca.uhn.fhir.cli.App Error during execution:
ca.uhn.fhir.rest.server.exceptions.InternalErrorException: HTTP 500 Internal Server Error: Failed to call access method: org.springframework.dao.InvalidDataAccessApiUsageException: Value exceeds maximum length (500): 606; nested exception is java.lang.IllegalArgumentException: Value exceeds maximum length (500): 606
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException.newInstance(BaseServerResponseException.java:302)
at ca.uhn.fhir.rest.client.impl.BaseClient.invokeClient(BaseClient.java:351)
at ca.uhn.fhir.rest.client.impl.GenericClient$BaseClientExecutable.invoke(GenericClient.java:431)
at ca.uhn.fhir.rest.client.impl.GenericClient$UpdateInternal.execute(GenericClient.java:2100)
at ca.uhn.fhir.rest.client.impl.GenericClient$UpdateInternal.execute(GenericClient.java:2046)
at ca.uhn.fhir.cli.ValidationDataUploader.uploadDefinitionsR4(ValidationDataUploader.java:442)
at ca.uhn.fhir.cli.ValidationDataUploader.run(ValidationDataUploader.java:164)
at ca.uhn.fhir.cli.BaseApp.run(BaseApp.java:251)
at ca.uhn.fhir.cli.App.main(App.java:43)
2019-08-29 17:01:12.779 [Thread-0] INFO ca.uhn.fhir.cli.App HAPI FHIR is shutting down...
- Server stacktrace:
2019-08-29 17:01:12.734 [http-bio-8080-exec-3] ERROR c.u.f.r.s.i.ExceptionHandlingInterceptor [ExceptionHandlingInterceptor.java:136] Failure during REST processing
ca.uhn.fhir.rest.server.exceptions.InternalErrorException: Failed to call access method: org.springframework.dao.InvalidDataAccessApiUsageException: Value exceeds maximum length (500): 606; nested exception is java.lang.IllegalArgumentException: Value exceeds maximum length (500): 606
at ca.uhn.fhir.rest.server.method.BaseMethodBinding.invokeServerMethod(BaseMethodBinding.java:244)
at ca.uhn.fhir.rest.server.method.BaseOutcomeReturningMethodBinding.invokeServer(BaseOutcomeReturningMethodBinding.java:150)
at ca.uhn.fhir.rest.server.method.UpdateMethodBinding.invokeServer(UpdateMethodBinding.java:44)
at ca.uhn.fhir.rest.server.RestfulServer.handleRequest(RestfulServer.java:998)
at ca.uhn.fhir.rest.server.RestfulServer.doPut(RestfulServer.java:351)
at ca.uhn.fhir.rest.server.RestfulServer.service(RestfulServer.java:1659)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at ca.uhn.fhir.rest.server.method.BaseMethodBinding.invokeServerMethod(BaseMethodBinding.java:239)
... 26 common frames omitted
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Value exceeds maximum length (500): 606; nested exception is java.lang.IllegalArgumentException: Value exceeds maximum length (500): 606
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:373)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy158.update(Unknown Source)
at ca.uhn.fhir.jpa.provider.r4.JpaResourceProviderR4.update(JpaResourceProviderR4.java:155)
... 30 common frames omitted
Caused by: java.lang.IllegalArgumentException: Value exceeds maximum length (500): 606
at ca.uhn.fhir.util.ValidateUtil.isNotTooLongOrThrowIllegalArgument(ValidateUtil.java:74)
at ca.uhn.fhir.jpa.entity.TermConceptDesignation.setValue(TermConceptDesignation.java:116)
at ca.uhn.fhir.jpa.term.BaseHapiTerminologySvcImpl.toTermConcept(BaseHapiTerminologySvcImpl.java:1350)
at ca.uhn.fhir.jpa.term.BaseHapiTerminologySvcImpl.toPersistedConcepts(BaseHapiTerminologySvcImpl.java:1325)
at ca.uhn.fhir.jpa.term.BaseHapiTerminologySvcImpl.storeNewCodeSystemVersionIfNeeded(BaseHapiTerminologySvcImpl.java:1310)
at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
at com.sun.proxy.$Proxy153.storeNewCodeSystemVersionIfNeeded(Unknown Source)
at ca.uhn.fhir.jpa.dao.r4.FhirResourceDaoCodeSystemR4.updateEntity(FhirResourceDaoCodeSystemR4.java:138)
at ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.doCreate(BaseHapiFhirResourceDao.java:436)
at ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.update(BaseHapiFhirResourceDao.java:1341)
at ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.update(BaseHapiFhirResourceDao.java:1407)
at ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.update(BaseHapiFhirResourceDao.java:1402)
at ca.uhn.fhir.jpa.dao.BaseHapiFhirResourceDao.update(BaseHapiFhirResourceDao.java:1296)
at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
... 37 common frames omitted
2019-08-29 17:01:12.735 [http-bio-8080-exec-3] INFO fhirtest.access [LoggingInterceptor.java:156] ERROR - PUT http://localhost:8080/hapi-fhir-jpaserver/fhir/CodeSystem/v2-0301
Expected behavior
Successful upload expected.
Environment
- HAPI FHIR Version: 4.0.0
- OS: macOS v10.13.6
- Java version: 1.8.0_191
- MySQL: 5.7.27
Did you happen to solve this problem? I'm planning to do this
I got hit by the same problem today. Based on my analysis, it looks like 'TermConceptDesignation value exceeds the limit (500) set and thus fails the validation. The stack trace tells it clearly. Do we have to increase the length? What is the recommended way to solve these kind of errors?
The URL for reference :
PUT /hapi-fhir-jpaserver/fhir/CodeSystem/v2-0301
if there is any error occurred in the middle of upload definitions, do we have to start from scratch again?
Closing as stale