Skip to content

Commit d0678bf

Browse files
authored
Keep prev data only when delta negotiated (#78)
1 parent 9ad97af commit d0678bf

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

centrifuge/build.gradle

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,11 @@ javadoc {
6969
metalava {
7070
hiddenPackages.add("io.github.centrifugal.centrifuge.internal")
7171
}
72+
73+
test {
74+
testLogging {
75+
events "passed", "skipped", "failed"
76+
exceptionFormat "full"
77+
showStandardStreams = true
78+
}
79+
}

centrifuge/src/main/java/io/github/centrifugal/centrifuge/Subscription.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,13 @@ void handlePublication(Protocol.Publication pub) throws Exception {
179179
ClientInfo info = ClientInfo.fromProtocolClientInfo(pub.getInfo());
180180
PublicationEvent event = new PublicationEvent();
181181
byte[] pubData = pub.getData().toByteArray();
182-
byte[] prevData = this.getPrevData();
183-
if (prevData != null && pub.getDelta()) {
184-
pubData = Fossil.applyDelta(prevData, pubData);
182+
if (this.deltaNegotiated) {
183+
byte[] prevData = this.getPrevData();
184+
if (prevData != null && pub.getDelta()) {
185+
pubData = Fossil.applyDelta(prevData, pubData);
186+
}
187+
this.setPrevData(pubData);
185188
}
186-
this.setPrevData(pubData);
187189
event.setData(pubData);
188190
event.setInfo(info);
189191
event.setOffset(pub.getOffset());

0 commit comments

Comments
 (0)