-
Bug
-
Resolution: Done
-
Major
-
6.0.0.Final
-
None
The AsyncInvocationIdUUIDImpl.equals() method is implemented as:
@Override public boolean equals(final Object obj) { return uuid.equals(obj); }
This implementation is incompatible with ConcurrentHashMap<AsyncInvocationId, Boolean>, which means that AsyncInvocationMap.remove(id) does not remove the AsyncInvocationIdUUIDImpl object from the map at all. In other words, the AsynchronousServerInterceptor.invoke() method is accumulating AsyncInvocationIdUUIDImpl objects until the JVM's heap explodes.