}
// Check if the timestamp is older than the concurrent timeout
// The concurrent timeout should be large enough to allow fieldType caches to be refreshed
if (originalTimestamp != null) {
if ((originalTimestamp + CONCURRENT_TIMEOUT) >= now) {
throw new ConcurrentUpdateTypeException(name.toString());
}
}
// Try to put our own timestamp with a check and put to make sure we're the only one doing this
Put put = new Put(nameBytes);
put.add(TypeCf.DATA.bytes, TypeColumn.CONCURRENT_TIMESTAMP.bytes, Bytes.toBytes(now));
if (!getTypeTable()
.checkAndPut(nameBytes, TypeCf.DATA.bytes, TypeColumn.CONCURRENT_TIMESTAMP.bytes, originalTimestampBytes, put)) {
throw new ConcurrentUpdateTypeException(name.toString());
}
}