2121import com .facebook .presto .metadata .MetadataUpdates ;
2222import com .facebook .presto .operator .TaskStats ;
2323import com .facebook .presto .spi .plan .PlanNodeId ;
24+ import com .facebook .presto .util .PrestoJsonObjectMapperUtil ;
2425import com .fasterxml .jackson .annotation .JsonCreator ;
2526import com .fasterxml .jackson .annotation .JsonProperty ;
2627import com .google .common .collect .ImmutableSet ;
@@ -56,7 +57,6 @@ public class TaskInfo
5657 private final String nodeId ;
5758
5859 @ JsonCreator
59- @ ThriftConstructor
6060 public TaskInfo (
6161 @ JsonProperty ("taskId" ) TaskId taskId ,
6262 @ JsonProperty ("taskStatus" ) TaskStatus taskStatus ,
@@ -81,6 +81,31 @@ public TaskInfo(
8181 this .nodeId = requireNonNull (nodeId , "nodeId is null" );
8282 }
8383
84+ @ ThriftConstructor
85+ public TaskInfo (
86+ TaskId taskId ,
87+ TaskStatus taskStatus ,
88+ long lastHeartbeatInMillis ,
89+ OutputBufferInfo outputBuffers ,
90+ Set <PlanNodeId > noMoreSplits ,
91+ TaskStats stats ,
92+ boolean needsPlan ,
93+ byte [] metadataUpdates ,
94+ String nodeId )
95+ {
96+ this .taskId = requireNonNull (taskId , "taskId is null" );
97+ this .taskStatus = requireNonNull (taskStatus , "taskStatus is null" );
98+ checkArgument (lastHeartbeatInMillis >= 0 , "lastHeartbeat is negative" );
99+ this .lastHeartbeatInMillis = lastHeartbeatInMillis ;
100+ this .outputBuffers = requireNonNull (outputBuffers , "outputBuffers is null" );
101+ this .noMoreSplits = requireNonNull (noMoreSplits , "noMoreSplits is null" );
102+ this .stats = requireNonNull (stats , "stats is null" );
103+
104+ this .needsPlan = needsPlan ;
105+ this .metadataUpdates = (MetadataUpdates ) PrestoJsonObjectMapperUtil .deserialize (requireNonNull (metadataUpdates , "metadataUpdates is null" ), MetadataUpdates .class );
106+ this .nodeId = requireNonNull (nodeId , "nodeId is null" );
107+ }
108+
84109 @ JsonProperty
85110 @ ThriftField (1 )
86111 public TaskId getTaskId ()
@@ -136,12 +161,17 @@ public boolean isNeedsPlan()
136161 }
137162
138163 @ JsonProperty
139- @ ThriftField (8 )
140164 public MetadataUpdates getMetadataUpdates ()
141165 {
142166 return metadataUpdates ;
143167 }
144168
169+ @ ThriftField (value = 8 , name = "metadataUpdates" )
170+ public byte [] getJsonMetadataUpdates ()
171+ {
172+ return PrestoJsonObjectMapperUtil .serialize (metadataUpdates );
173+ }
174+
145175 @ JsonProperty
146176 @ ThriftField (9 )
147177 public String getNodeId ()
0 commit comments