hapi-fhir-jpaserver-starter icon indicating copy to clipboard operation
hapi-fhir-jpaserver-starter copied to clipboard

Failed to upload definition by using hapi-fhir-cli v4.0

Open shansamlu opened this issue 6 years ago • 2 comments

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

  1. Clone project
  2. Change hapi.properties to adapt MySQL 5 as DBMS
  3. 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
  1. Download hapi-fhir-cli v4.0 and run hapi-fhir-cli upload-definitions -t http://localhost:8080/hapi-fhir-jpaserver/fhir/ -v r4 The 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...
  1. 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

shansamlu avatar Aug 29 '19 22:08 shansamlu

Did you happen to solve this problem? I'm planning to do this

keerthivasan-r avatar Sep 18 '19 13:09 keerthivasan-r

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?

keerthivasan-r avatar Sep 19 '19 10:09 keerthivasan-r

Closing as stale

jkiddo avatar Apr 17 '24 05:04 jkiddo