YARN-5559. Analyse 2.8.0/3.0.0 jdiff reports and fix any issues. Contributed by Akira Ajisaka & Wangda Tan

This commit is contained in:
Jian He 2016-12-05 11:39:34 -08:00
parent 1b5cceaffb
commit 43ebff2e35
7 changed files with 127 additions and 40 deletions

View File

@ -18,7 +18,9 @@
package org.apache.hadoop.yarn.api.protocolrecords;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
@ -28,18 +30,48 @@ import org.apache.hadoop.yarn.util.Records;
@Public
@Evolving
public abstract class GetClusterNodeLabelsResponse {
public static GetClusterNodeLabelsResponse newInstance(List<NodeLabel> labels) {
GetClusterNodeLabelsResponse request =
Records.newRecord(GetClusterNodeLabelsResponse.class);
request.setNodeLabels(labels);
return request;
/**
* Creates a new instance.
*
* @param labels Node labels
* @return response
* @deprecated Use {@link #newInstance(List)} instead.
*/
@Deprecated
public static GetClusterNodeLabelsResponse newInstance(Set<String> labels) {
List<NodeLabel> list = new ArrayList<>();
for (String label : labels) {
list.add(NodeLabel.newInstance(label));
}
return newInstance(list);
}
@Public
@Evolving
public abstract void setNodeLabels(List<NodeLabel> labels);
public static GetClusterNodeLabelsResponse newInstance(List<NodeLabel> labels) {
GetClusterNodeLabelsResponse response =
Records.newRecord(GetClusterNodeLabelsResponse.class);
response.setNodeLabelList(labels);
return response;
}
@Public
@Evolving
public abstract List<NodeLabel> getNodeLabels();
public abstract void setNodeLabelList(List<NodeLabel> labels);
public abstract List<NodeLabel> getNodeLabelList();
/**
* Set node labels to the response.
*
* @param labels Node labels
* @deprecated Use {@link #setNodeLabelList(List)} instead.
*/
@Deprecated
public abstract void setNodeLabels(Set<String> labels);
/**
* Get node labels of the response.
*
* @return Node labels
* @deprecated Use {@link #getNodeLabelList()} instead.
*/
@Deprecated
public abstract Set<String> getNodeLabels();
}

View File

@ -899,7 +899,7 @@ public class YarnClientImpl extends YarnClient {
@Override
public List<NodeLabel> getClusterNodeLabels() throws YarnException, IOException {
return rmClient.getClusterNodeLabels(
GetClusterNodeLabelsRequest.newInstance()).getNodeLabels();
GetClusterNodeLabelsRequest.newInstance()).getNodeLabelList();
}
@Override

View File

@ -19,7 +19,9 @@
package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsResponse;
import org.apache.hadoop.yarn.api.records.NodeLabel;
@ -46,7 +48,7 @@ public class GetClusterNodeLabelsResponsePBImpl extends
viaProto = true;
}
public GetClusterNodeLabelsResponseProto getProto() {
public synchronized GetClusterNodeLabelsResponseProto getProto() {
mergeLocalToProto();
proto = viaProto ? proto : builder.build();
viaProto = true;
@ -101,14 +103,43 @@ public class GetClusterNodeLabelsResponsePBImpl extends
}
@Override
public void setNodeLabels(List<NodeLabel> updatedNodeLabels) {
public synchronized void setNodeLabelList(List<NodeLabel> nodeLabels) {
maybeInitBuilder();
this.updatedNodeLabels = new ArrayList<>();
if (updatedNodeLabels == null) {
if (nodeLabels == null) {
builder.clearNodeLabels();
return;
}
this.updatedNodeLabels.addAll(updatedNodeLabels);
this.updatedNodeLabels.addAll(nodeLabels);
}
/**
* @deprecated Use {@link #getNodeLabelList()} instead.
*/
@Override
@Deprecated
public synchronized Set<String> getNodeLabels() {
Set<String> set = new HashSet<>();
List<NodeLabel> labelList = getNodeLabelList();
if (labelList != null) {
for (NodeLabel label : labelList) {
set.add(label.getName());
}
}
return set;
}
/**
* @deprecated Use {@link #setNodeLabelList(List)} instead.
*/
@Override
@Deprecated
public void setNodeLabels(Set<String> labels) {
List<NodeLabel> list = new ArrayList<>();
for (String s : labels) {
list.add(NodeLabel.newInstance(s));
}
setNodeLabelList(list);
}
private void initLocalNodeLabels() {
@ -121,7 +152,7 @@ public class GetClusterNodeLabelsResponsePBImpl extends
}
@Override
public List<NodeLabel> getNodeLabels() {
public synchronized List<NodeLabel> getNodeLabelList() {
if (this.updatedNodeLabels != null) {
return this.updatedNodeLabels;
}

View File

@ -73,6 +73,31 @@ public class ContainerTokenIdentifier extends TokenIdentifier {
CommonNodeLabelsManager.NO_LABEL, ContainerType.TASK);
}
/**
* Creates a instance.
*
* @param appSubmitter appSubmitter
* @param containerID container ID
* @param creationTime creation time
* @param expiryTimeStamp expiry timestamp
* @param hostName hostname
* @param logAggregationContext log aggregation context
* @param masterKeyId master key ID
* @param priority priority
* @param r resource needed by the container
* @param rmIdentifier ResourceManager identifier
* @deprecated Use one of the other constructors instead.
*/
@Deprecated
public ContainerTokenIdentifier(ContainerId containerID, String hostName,
String appSubmitter, Resource r, long expiryTimeStamp, int masterKeyId,
long rmIdentifier, Priority priority, long creationTime,
LogAggregationContext logAggregationContext) {
this(containerID, hostName, appSubmitter, r, expiryTimeStamp, masterKeyId,
rmIdentifier, priority, creationTime, logAggregationContext,
CommonNodeLabelsManager.NO_LABEL);
}
public ContainerTokenIdentifier(ContainerId containerID, String hostName,
String appSubmitter, Resource r, long expiryTimeStamp, int masterKeyId,
long rmIdentifier, Priority priority, long creationTime,

View File

@ -20,7 +20,6 @@ package org.apache.hadoop.yarn.state;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
/**
* The exception that happens when you call invalid state transition.
@ -28,24 +27,13 @@ import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
*/
@Public
@Evolving
public class InvalidStateTransitionException extends YarnRuntimeException {
@SuppressWarnings("deprecation")
public class InvalidStateTransitionException extends
InvalidStateTransitonException {
private static final long serialVersionUID = -6188669113571351684L;
private Enum<?> currentState;
private Enum<?> event;
private static final long serialVersionUID = 8610511635996283691L;
public InvalidStateTransitionException(Enum<?> currentState, Enum<?> event) {
super("Invalid event: " + event + " at " + currentState);
this.currentState = currentState;
this.event = event;
super(currentState, event);
}
public Enum<?> getCurrentState() {
return currentState;
}
public Enum<?> getEvent() {
return event;
}
}

View File

@ -20,20 +20,31 @@ package org.apache.hadoop.yarn.state;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
/** @deprecated Use {@link InvalidStateTransitionException} instead. */
@Public
@Evolving
@Deprecated
public class InvalidStateTransitonException extends
InvalidStateTransitionException {
public class InvalidStateTransitonException extends YarnRuntimeException {
private static final long serialVersionUID = 8610511635996283691L;
private static final long serialVersionUID = -6188669113571351684L;
private Enum<?> currentState;
private Enum<?> event;
public InvalidStateTransitonException(Enum<?> currentState, Enum<?> event) {
super(currentState, event);
super("Invalid event: " + event + " at " + currentState);
this.currentState = currentState;
this.event = event;
}
public Enum<?> getCurrentState() {
return currentState;
}
public Enum<?> getEvent() {
return event;
}
}

View File

@ -1534,7 +1534,7 @@ public class TestClientRMService {
// Get node labels collection
GetClusterNodeLabelsResponse response = client
.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
Assert.assertTrue(response.getNodeLabels().containsAll(
Assert.assertTrue(response.getNodeLabelList().containsAll(
Arrays.asList(labelX, labelY)));
// Get node labels mapping
@ -1605,7 +1605,7 @@ public class TestClientRMService {
// Get node labels collection
GetClusterNodeLabelsResponse response = client
.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
Assert.assertTrue(response.getNodeLabels().containsAll(
Assert.assertTrue(response.getNodeLabelList().containsAll(
Arrays.asList(labelX, labelY, labelZ)));
// Get labels to nodes mapping