ouyangyewei opened a new issue, #11854:
URL: https://github.com/apache/dolphinscheduler/issues/11854

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue) and 
found no similar issues.
   
   
   ### What happened
   
   Remote call DataAnalysisService API: 
   1. `/dolphinscheduler/projects/analysis/task-state-count`
   2. `/dolphinscheduler/projects/analysis/process-state-count`
   
   after then, deserialize to `org.apache.dolphinscheduler.api.dto.TaskCountDto`
   ```java
   import org.apache.dolphinscheduler.common.utils.JSONUtils;
   
   @Data
   public class QueryTaskStatesResponse {
       protected Map<String, String> headers;
       protected Result<T> body;
   }
   ...
   final Map<String, ?> res = callApi(xxx);
   JSONUtils.parseObject(JSONUtils.toJsonString(values), 
QueryTaskStatesResponse.class);
   ...
   ```
   
   then raise exception:
   ```java
   com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot 
construct instance of `org.apache.dolphinscheduler.api.dto.TaskStateCount` (no 
Creators, like default constructor, exist): cannot deserialize from Object 
value (no delegate- or property-based Creator)
    at [Source: (String)"{"headers":{"date":"Thu, 08 Sep 2022 06:46:35 
GMT","transfer-encoding":"chunked","vary":"Origin;Access-Control-Request-Method;Access-Control-Request-Headers;Accept-Encoding,
 
User-Agent","content-type":"application/json"},"body":{"code":0,"msg":"success","data":{"totalCount":2,"taskCountDtos":[{"count":0,"taskStateType":"SUBMITTED_SUCCESS"},{"count":2,"taskStateType":"RUNNING_EXECUTION"},{"count":0,"taskStateType":"READY_PAUSE"},{"count":0,"taskStateType":"PAUSE"},{"count":0,"taskStateType":"READ"[truncated
 392 chars]; line: 1, column: 296] (through reference chain: 
com.alibaba.teasdk.model.analysis.QueryProcessInstanceStatesResponse["body"]->org.apache.dolphinscheduler.api.utils.Result["data"]->org.apache.dolphinscheduler.api.dto.TaskCountDto["taskCountDtos"]->java.util.ArrayList[0])
        at 
com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1904)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1349)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1415)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:351)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:184)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:355)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
 ~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629) 
~[jackson-databind-2.13.3.jar:2.13.3]
        at 
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597) 
~[jackson-databind-2.13.3.jar:2.13.3]
        at 
org.apache.dolphinscheduler.common.utils.JSONUtils.parseObject(JSONUtils.java:127)
 ~[dolphinscheduler-common-2.0.6-SNAPSHOT.jar:2.0.6-SNAPSHOT]
        at com.alibaba.teasdk.Client.toResponse(Client.java:227) [classes/:na]
        at com.alibaba.teasdk.Client.doRequest(Client.java:78) [classes/:na]
        at com.alibaba.teasdk.Client.call(Client.java:39) [classes/:na]
        at 
com.alibaba.teasdk.ApplicationTests.testAnalysis(ApplicationTests.java:325) 
[test-classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_321]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_321]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_321]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_321]
        at 
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
 [junit-platform-commons-1.8.2.jar:1.8.2]
        at 
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
 [junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
 [junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
 [junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
 [junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
 [junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
 ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 
~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at java.util.ArrayList.forEach(ArrayList.java:1259) ~[na:1.8.0_321]
        at 
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 
~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at java.util.ArrayList.forEach(ArrayList.java:1259) ~[na:1.8.0_321]
        at 
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 
~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
 ~[junit-platform-engine-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
 ~[junit-platform-launcher-1.8.2.jar:1.8.2]
        at 
com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71)
 ~[junit5-rt.jar:na]
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) 
~[junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) 
~[idea_rt.jar:na]
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
 ~[junit-rt.jar:na]
        at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
 ~[junit-rt.jar:na]
        at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) 
~[junit-rt.jar:na]
   ```
   
   ### What you expected to happen
   
   Response deserializes correctly
   
   ### How to reproduce
   
   `org.apache.dolphinscheduler.api.dto.TaskCountDto` and 
`org.apache.dolphinscheduler.api.dto.TaskStateCount` adds default constructor
   
   ### Anything else
   
   _No response_
   
   ### Version
   
   2.0.6
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to