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 {
19
19
}
20
20
21
21
private static class ConfusedFrameHandler extends SocketFrameHandler {
22
+
23
+ private boolean confusedOnce = false ;
24
+
22
25
public ConfusedFrameHandler (Socket socket ) throws IOException {
23
26
super (socket );
24
27
}
25
28
26
29
@ Override
27
30
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
+ }
31
39
}
32
40
}
33
41
@@ -70,7 +78,11 @@ public Frame confuse(Frame frame) {
70
78
if (frame .type == AMQP .FRAME_METHOD ) {
71
79
// We can't just skip the method as that will lead us to
72
80
// 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 ;
74
86
}
75
87
return frame ;
76
88
}
You can’t perform that action at this time.
0 commit comments