Session implements AutoCloseable { public <T> T remove(Key<T> key) { return cast(key, map.remove(key)); } Session(SessionEventListener listener); String toString(); long sessionId(); T get(Session.Key<T> key); T put(Session.Key<T> key, T item); T remove(Key<T> key); V get(MapKey<K,V> mapKey, K key); V put(MapKey<K,V> mapKey, K key, V value); V remove(MapKey<K,V> mapKey, K key); void push(StackKey<T> key, T item); T pop(StackKey<T> key); boolean isEmpty(StackKey<?> key); @Override void close(); void cancelCurrentQuery(boolean cancel); boolean isCurrentQueryCanceled(); boolean hasTimeoutAfterNanos(); long getElapsedMillis(); long getRemainingNanosBeforeTimeout(); void setTimeoutAfterMillis(long millis);  }
@Test public void removeFromMapBeforeGetting() { Session.MapKey<Integer,String> key = Session.MapKey.mapNamed("foo"); assertEquals("removal value for 1", null, session.remove(key, 1)); }