|
1 | 1 | /* |
2 | | - * Copyright 2002-2014 the original author or authors. |
| 2 | + * Copyright 2002-2015 the original author or authors. |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
@@ -176,18 +176,32 @@ public void decodeMultipleFramesFromSameBuffer() { |
176 | 176 | Buffer buffer = Buffer.wrap(frame1 + frame2); |
177 | 177 |
|
178 | 178 | final List<Message<byte[]>> messages = new ArrayList<Message<byte[]>>(); |
179 | | - new Reactor2StompCodec().decoder(new Consumer<Message<byte[]>>() { |
180 | | - @Override |
181 | | - public void accept(Message<byte[]> message) { |
182 | | - messages.add(message); |
183 | | - } |
184 | | - }).apply(buffer); |
| 179 | + new Reactor2StompCodec().decoder(messages::add).apply(buffer); |
185 | 180 |
|
186 | 181 | assertEquals(2, messages.size()); |
187 | 182 | assertEquals(StompCommand.SEND, StompHeaderAccessor.wrap(messages.get(0)).getCommand()); |
188 | 183 | assertEquals(StompCommand.DISCONNECT, StompHeaderAccessor.wrap(messages.get(1)).getCommand()); |
189 | 184 | } |
190 | 185 |
|
| 186 | + // SPR-13111 |
| 187 | + |
| 188 | + @Test |
| 189 | + public void decodeFrameWithHeaderWithEmptyValue() { |
| 190 | + String accept = "accept-version:1.1\n"; |
| 191 | + String valuelessKey = "key:\n"; |
| 192 | + |
| 193 | + Message<byte[]> frame = decode("CONNECT\n" + accept + valuelessKey + "\n\0"); |
| 194 | + StompHeaderAccessor headers = StompHeaderAccessor.wrap(frame); |
| 195 | + |
| 196 | + assertEquals(StompCommand.CONNECT, headers.getCommand()); |
| 197 | + |
| 198 | + assertEquals(2, headers.toNativeHeaderMap().size()); |
| 199 | + assertEquals("1.1", headers.getFirstNativeHeader("accept-version")); |
| 200 | + assertEquals("", headers.getFirstNativeHeader("key")); |
| 201 | + |
| 202 | + assertEquals(0, frame.getPayload().length); |
| 203 | + } |
| 204 | + |
191 | 205 | @Test |
192 | 206 | public void decodeFrameWithIncompleteCommand() { |
193 | 207 | assertIncompleteDecode("MESSAG"); |
@@ -234,12 +248,7 @@ public void decodeHeartbeat() { |
234 | 248 | Buffer buffer = Buffer.wrap(frame); |
235 | 249 |
|
236 | 250 | final List<Message<byte[]>> messages = new ArrayList<Message<byte[]>>(); |
237 | | - new Reactor2StompCodec().decoder(new Consumer<Message<byte[]>>() { |
238 | | - @Override |
239 | | - public void accept(Message<byte[]> message) { |
240 | | - messages.add(message); |
241 | | - } |
242 | | - }).apply(buffer); |
| 251 | + new Reactor2StompCodec().decoder(messages::add).apply(buffer); |
243 | 252 |
|
244 | 253 | assertEquals(1, messages.size()); |
245 | 254 | assertEquals(SimpMessageType.HEARTBEAT, StompHeaderAccessor.wrap(messages.get(0)).getMessageType()); |
|
0 commit comments