File tree Expand file tree Collapse file tree 1 file changed +16
-4
lines changed
test/src/com/rabbitmq/client/test/functional Expand file tree Collapse file tree 1 file changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -19,15 +19,23 @@ private interface Confuser {
1919 }
2020
2121 private static class ConfusedFrameHandler extends SocketFrameHandler {
22+
23+ private boolean confusedOnce = false ;
24+
2225 public ConfusedFrameHandler (Socket socket ) throws IOException {
2326 super (socket );
2427 }
2528
2629 @ Override
2730 public void writeFrame (Frame frame ) throws IOException {
28- Frame confusedFrame = confuser .confuse (frame );
29- if (confusedFrame != null ) {
30- super .writeFrame (confusedFrame );
31+ if (confusedOnce ) {
32+ super .writeFrame (frame );
33+ } else {
34+ Frame confusedFrame = confuser .confuse (frame );
35+ if (confusedFrame != frame ) confusedOnce = true ;
36+ if (confusedFrame != null ) {
37+ super .writeFrame (confusedFrame );
38+ }
3139 }
3240 }
3341
@@ -70,7 +78,11 @@ public Frame confuse(Frame frame) {
7078 if (frame .type == AMQP .FRAME_METHOD ) {
7179 // We can't just skip the method as that will lead us to
7280 // send 0 bytes and hang waiting for a response.
73- frame .type = AMQP .FRAME_HEADER ;
81+ Frame confusedFrame = new Frame (AMQP .FRAME_HEADER ,
82+ frame .channel ,
83+ frame .payload );
84+ confusedFrame .accumulator = frame .accumulator ;
85+ return confusedFrame ;
7486 }
7587 return frame ;
7688 }
You can’t perform that action at this time.
0 commit comments