} else if (o instanceof InternalCacheEntry) {
out.writeByte(MAGICNUMBER_INTERNAL_CACHED_ENTRY);
InternalCacheEntry ice = (InternalCacheEntry) o;
marshallObject(ice.getKey(), out, refMap);
marshallObject(ice.getValue(), out, refMap);
if (ice.canExpire()) {
out.writeBoolean(true);
writeUnsignedLong(out, ice.getCreated());
out.writeLong(ice.getLifespan()); // could be negative so should not use unsigned longs
writeUnsignedLong(out, ice.getLastUsed());
out.writeLong(ice.getMaxIdle()); // could be negative so should not use unsigned longs