Repository: reef Updated Branches: refs/heads/master f6a0e452c -> 51b76fc72
[REEF-1907] Use proper generic parameters in HandlerContainer JIRA: [REEF-1907](https://issues.apache.org/jira/browse/REEF-1907) Pull Request: This closes #1397 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/51b76fc7 Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/51b76fc7 Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/51b76fc7 Branch: refs/heads/master Commit: 51b76fc72899ce5fdfe0327fea02b4860ab5ba31 Parents: f6a0e45 Author: Sergiy Matusevych <[email protected]> Authored: Wed Oct 18 19:48:45 2017 -0700 Committer: Markus Weimer <[email protected]> Committed: Tue Oct 24 10:17:48 2017 -0700 ---------------------------------------------------------------------- .../apache/reef/wake/remote/impl/HandlerContainer.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/51b76fc7/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/impl/HandlerContainer.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/impl/HandlerContainer.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/impl/HandlerContainer.java index 3a2772f..89b44e3 100644 --- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/impl/HandlerContainer.java +++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/impl/HandlerContainer.java @@ -44,7 +44,7 @@ final class HandlerContainer<T> implements EventHandler<RemoteEvent<byte[]>> { EventHandler<RemoteMessage<? extends T>>> msgTypeToHandlerMap = new ConcurrentHashMap<>(); private final ConcurrentMap<Tuple2<RemoteIdentifier, Class<? extends T>>, - EventHandler<? extends T>> tupleToHandlerMap = new ConcurrentHashMap<>(); + EventHandler<? super T>> tupleToHandlerMap = new ConcurrentHashMap<>(); private final Codec<T> codec; private final String name; @@ -80,7 +80,7 @@ final class HandlerContainer<T> implements EventHandler<RemoteEvent<byte[]>> { public AutoCloseable registerHandler( final RemoteIdentifier sourceIdentifier, final Class<? extends T> messageType, - final EventHandler<? extends T> theHandler) { + final EventHandler<? super T> theHandler) { final Tuple2<RemoteIdentifier, Class<? extends T>> tuple = new Tuple2<RemoteIdentifier, Class<? extends T>>(sourceIdentifier, messageType); @@ -187,7 +187,7 @@ final class HandlerContainer<T> implements EventHandler<RemoteEvent<byte[]>> { LOG.log(Level.FINER, "RemoteManager: {0} value: {1}", new Object[] {this.name, value}); final T decodedEvent = this.codec.decode(value.getEvent()); - final Class<?> clazz = decodedEvent.getClass(); + final Class<? extends T> clazz = (Class<? extends T>) decodedEvent.getClass(); LOG.log(Level.FINEST, "RemoteManager: {0} decoded event {1} :: {2}", new Object[] {this.name, clazz.getCanonicalName(), decodedEvent}); @@ -195,9 +195,10 @@ final class HandlerContainer<T> implements EventHandler<RemoteEvent<byte[]>> { // check remote identifier and message type final SocketRemoteIdentifier id = new SocketRemoteIdentifier((InetSocketAddress)value.remoteAddress()); - final Tuple2<RemoteIdentifier, Class<?>> tuple = new Tuple2<RemoteIdentifier, Class<?>>(id, clazz); + final Tuple2<RemoteIdentifier, Class<? extends T>> tuple = + new Tuple2<RemoteIdentifier, Class<? extends T>>(id, clazz); - final EventHandler<T> tupleHandler = (EventHandler<T>) this.tupleToHandlerMap.get(tuple); + final EventHandler<? super T> tupleHandler = this.tupleToHandlerMap.get(tuple); if (tupleHandler != null) { @@ -219,7 +220,7 @@ final class HandlerContainer<T> implements EventHandler<RemoteEvent<byte[]>> { LOG.log(Level.FINER, "Message handler: {0}", clazz.getCanonicalName()); - messageHandler.onNext(new DefaultRemoteMessage(id, decodedEvent)); + messageHandler.onNext(new DefaultRemoteMessage<>(id, decodedEvent)); } } }
