eclipse-ee4j / eclipse-ee4j/tyrus

Can't use lambda expression for MessageHandler

Open
#630 1 comment 2 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
128
Forks
49
PR merge metrics
No merged PRs in 30d

Description

Neither of the following two lambda expression work, when registering a PongMessage handler.

```
session.addMessageHandler((MessageHandler.Whole) message -> {
});
```
```
session.addMessageHandler(PongMessage.class, message -> {
});
```

The reason is, that the internal method `static Class getHandlerType(MessageHandler handler)` returns `Object` instead of `PongMessage` for the type.

The workaround for this issue is to not using lambdas, but implement the interface on a class and use that:

```
class PongHandler implements MessageHandler.Whole
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.