public VersionedValue call() throws InterruptedException {
CellMessage m = new GetRequestMessage(getName(), propName);
ResponseMessage rm = channel.sendAndWait(m);
if (rm instanceof GetResponseMessage) {
GetResponseMessage grm = (GetResponseMessage) rm;
return new ImmediateVersionedValue(VersionType.REMOTE,
grm.getVersion(), grm.getData());
} else {
throw new IllegalStateException("Invalid response to value " +
"request: " + rm.getClass());
}
}