diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapter.java b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapter.java index 7bd9408936d..bd4c0db747d 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapter.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapter.java @@ -60,21 +60,44 @@ public class StandardWebSocketHandlerAdapter extends Endpoint { public void onOpen(final javax.websocket.Session session, EndpointConfig config) { this.wsSession.initializeNativeSession(session); + // The following inner classes need to remain since lambdas would not retain their + // declared generic types (which need to be seen by the underlying WebSocket engine) + if (this.handler.supportsPartialMessages()) { - session.addMessageHandler((MessageHandler.Partial) - (message, isLast) -> handleTextMessage(session, message, isLast)); - session.addMessageHandler((MessageHandler.Partial) - (message, isLast) -> handleBinaryMessage(session, message, isLast)); + session.addMessageHandler(new MessageHandler.Partial() { + @Override + public void onMessage(String message, boolean isLast) { + handleTextMessage(session, message, isLast); + } + }); + session.addMessageHandler(new MessageHandler.Partial() { + @Override + public void onMessage(ByteBuffer message, boolean isLast) { + handleBinaryMessage(session, message, isLast); + } + }); } else { - session.addMessageHandler((MessageHandler.Whole) - message -> handleTextMessage(session, message, true)); - session.addMessageHandler((MessageHandler.Whole) - message -> handleBinaryMessage(session, message, true)); + session.addMessageHandler(new MessageHandler.Whole() { + @Override + public void onMessage(String message) { + handleTextMessage(session, message, true); + } + }); + session.addMessageHandler(new MessageHandler.Whole() { + @Override + public void onMessage(ByteBuffer message) { + handleBinaryMessage(session, message, true); + } + }); } - session.addMessageHandler((MessageHandler.Whole) - message -> handlePongMessage(session, message.getApplicationData())); + session.addMessageHandler(new MessageHandler.Whole() { + @Override + public void onMessage(javax.websocket.PongMessage message) { + handlePongMessage(session, message.getApplicationData()); + } + }); try { this.handler.afterConnectionEstablished(this.wsSession); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/WebLogicRequestUpgradeStrategy.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/WebLogicRequestUpgradeStrategy.java index 5948f1a52e5..16bda831e2a 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/WebLogicRequestUpgradeStrategy.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/WebLogicRequestUpgradeStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,7 +55,7 @@ public class WebLogicRequestUpgradeStrategy extends AbstractTyrusRequestUpgradeS private static final WebLogicServletWriterHelper servletWriterHelper = new WebLogicServletWriterHelper(); - private static final Connection.CloseListener noOpCloseListener = reason -> { }; + private static final Connection.CloseListener noOpCloseListener = (reason -> {}); @Override