public static byte[] retrieve(String key) { Pointer ptr = get(key); if (ptr == null) return null; if (ptr.expired() || ptr.free) { map.remove(key); if (!ptr.free) { MemoryManager.free(ptr); } return null; } else { return MemoryManager.retrieve(ptr); } }