public CacheValue detachFromCache() {
if (_baseCacheValue instanceof ByteArrayCacheValue) {
// already detached
return null;
} else if (_baseCacheValue instanceof UnsafeCacheValue) {
final CacheValue result = _baseCacheValue;
if (get() == 0) {
// No one is using this so don't copy
// NULL out reference so just in case there can't be a seg fault.
_baseCacheValue = null;
} else {