-
Bug
-
Resolution: Done
-
Medium
-
Casablanca Release
-
None
When user performs drill down on a "Failed" service instance in SO-Monitoring, no variable instance information is returned and a 500 error code is attached.
Below exception is thrown in the UI logs:
error: "Internal Server Error"exception: "org.springframework.http.converter.HttpMessageNotReadableException"message: "JSON parse error: Unexpected character ('}' (code 125)): was expecting a colon to separate field name and value\n at [Source: java.io.PushbackInputStream@4279a9d6; line: 1, column: 18557]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Unexpected character ('}' (code 125)): was expecting a colon to separate field name and value\n at [Source: java.io.PushbackInputStream@4279a9d6; line: 1, column: 18557]\n at [Source: java.io.PushbackInputStream@4279a9d6; line: 1, column: 18549] (through reference chain: java.lang.Object[][28])"path: "/so/monitoring/variable-instance/52ab2ee4-e809-11e8-86bc-0290716766fe"status: 500timestamp: 1542368451482<prototype>: Object { … }
The SO-Monitoring backend retrieved a variable instance data from the Camunda engine using the below URL:
curl -H "Authorization: Basic YXBpaEJwbW46cGFzc3dvcmQxJA==" http://so-bpmn-infra.onap:8081/sobpmnengine/engine/default/history/variable-instance?processInstanceId=52ab2ee4-e809-11e8-86bc-0290716766fe
The output of the above curl command is:
[ { "type":"Boolean", "value":true, "valueInfo":{ }, "id":"52b51a2b-e809-11e8-86bc-0290716766fe", "name":"CVFMI_sentSyncResponse", "processDefinitionKey":"CreateVfModuleInfra", "processDefinitionId":"CreateVfModuleInfra:2:09827230-e268-11e8-8f11-0290710fa846", "processInstanceId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "executionId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "activityInstanceId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "caseDefinitionKey":null, "caseDefinitionId":null, "caseInstanceId":null, "caseExecutionId":null, "taskId":null, "errorMessage":null, "tenantId":null, "state":"CREATED" }, { "type":"String", "value":"CVFMI_", "valueInfo":{ }, "id":"52b51a2d-e809-11e8-86bc-0290716766fe", "name":"prefix", "processDefinitionKey":"CreateVfModuleInfra", "processDefinitionId":"CreateVfModuleInfra:2:09827230-e268-11e8-8f11-0290710fa846", "processInstanceId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "executionId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "activityInstanceId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "caseDefinitionKey":null, "caseDefinitionId":null, "caseInstanceId":null, "caseExecutionId":null, "taskId":null, "errorMessage":null, "tenantId":null, "state":"CREATED" }, { "type":"String", "value":"true", "valueInfo":{ }, "id":"52b51a2f-e809-11e8-86bc-0290716766fe", "name":"isVidRequest", "processDefinitionKey":"CreateVfModuleInfra", "processDefinitionId":"CreateVfModuleInfra:2:09827230-e268-11e8-8f11-0290710fa846", "processInstanceId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "executionId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "activityInstanceId":"52ab2ee4-e809-11e8-86bc-0290716766fe", "caseDefinitionKey":null, "caseDefinitionId":null, "caseInstanceId":null, "caseExecutionId":null, "taskId":null, "errorMessage":null, "tenantId":null, "state":"CREATED" }, { "type":"Object", "value" } ]
As it can be seen above, the last object in the JSON string is invalid, coming back from the Camunda engine. This results in the following exception:
2018-11-16T10:22:38.385Z|| o.a.c.c.C.[.[.[.[.o.s.m.r.api.JerseyConfiguration] - Servlet.service() for servlet [org.onap.so.monitoring.rest.api.JerseyConfiguration] in context with path [] threw exception [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('}' (code 125)): was expecting a colon to separate field name and value2018-11-16T10:22:38.385Z|| o.a.c.c.C.[.[.[.[.o.s.m.r.api.JerseyConfiguration] - Servlet.service() for servlet [org.onap.so.monitoring.rest.api.JerseyConfiguration] in context with path [] threw exception [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('}' (code 125)): was expecting a colon to separate field name and value at [Source: java.io.PushbackInputStream@7b1d411a; line: 1, column: 18557]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Unexpected character ('}' (code 125)): was expecting a colon to separate field name and value at [Source: java.io.PushbackInputStream@7b1d411a; line: 1, column: 18557] at [Source: java.io.PushbackInputStream@7b1d411a; line: 1, column: 18549] (through reference chain: java.lang.Object[][28])] with root causecom.fasterxml.jackson.core.JsonParseException: Unexpected character ('}' (code 125)): was expecting a colon to separate field name and value at [Source: java.io.PushbackInputStream@7b1d411a; line: 1, column: 18557] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:456) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipColon2(UTF8StreamJsonParser.java:3080) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipColon(UTF8StreamJsonParser.java:3009) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1057) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:364) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:148) at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:196) at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:20) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3814) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2938) at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:235) at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:223) at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:96) at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:932) at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:916) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:663) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:621) at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:539) at org.onap.so.montoring.rest.service.HttpRestServiceProviderImpl.getHttpResponse(HttpRestServiceProviderImpl.java:53) at org.onap.so.montoring.rest.service.CamundaProcessDataServiceProviderImpl.getProcessInstanceVariable(CamundaProcessDataServiceProviderImpl.java:160) at org.onap.so.monitoring.rest.api.SoMonitoringController.getProcessInstanceVariables(SoMonitoringController.java:200) at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)2018-11-
- relates to
-
SO-1236 BPMN flows are throwing JsonMappingException while serializing RollbackData
- Closed