@@ -177,8 +177,7 @@ public class DataCenterAwareMarshallingStrategy implements MarshallingStrategy {
|
||||
String instanceId = info.getMetadata().get("instanceId");
|
||||
DataCenterInfo dataCenter = info.getDataCenterInfo();
|
||||
if (instanceId != null && Name.Amazon != dataCenter.getName()) {
|
||||
String old = info.getId();
|
||||
String id = old.endsWith(instanceId) ? old : old + ":" + instanceId;
|
||||
String id = calculateId(info, instanceId);
|
||||
info = new InstanceInfo.Builder(info).setDataCenterInfo(
|
||||
new InstanceIdDataCenterInfo(id)).build();
|
||||
source = info;
|
||||
@@ -186,6 +185,17 @@ public class DataCenterAwareMarshallingStrategy implements MarshallingStrategy {
|
||||
super.marshal(source, writer, context);
|
||||
}
|
||||
|
||||
String calculateId(InstanceInfo info, String instanceId) {
|
||||
String old = info.getId();
|
||||
if (old.endsWith(instanceId)) {
|
||||
return old;
|
||||
}
|
||||
if (instanceId.startsWith(old)) {
|
||||
return instanceId;
|
||||
}
|
||||
return old + ":" + instanceId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object unmarshal(HierarchicalStreamReader reader,
|
||||
UnmarshallingContext context) {
|
||||
@@ -194,8 +204,7 @@ public class DataCenterAwareMarshallingStrategy implements MarshallingStrategy {
|
||||
String instanceId = info.getMetadata().get("instanceId");
|
||||
DataCenterInfo dataCenter = info.getDataCenterInfo();
|
||||
if (instanceId != null && Name.Amazon != dataCenter.getName()) {
|
||||
String old = info.getId();
|
||||
String id = old.endsWith(instanceId) ? old : old + ":" + instanceId;
|
||||
String id = calculateId(info, instanceId);
|
||||
info = new InstanceInfo.Builder(info).setDataCenterInfo(
|
||||
new InstanceIdDataCenterInfo(id)).build();
|
||||
obj = info;
|
||||
|
||||
Reference in New Issue
Block a user