Fixed bug in Chunker, exposed by interpreter changes
This commit is contained in:
parent
b8ceb863c9
commit
083bfb6692
3 changed files with 22 additions and 5 deletions
|
|
@ -100,8 +100,15 @@ public class RecipeByteStrings extends RecipeTest {
|
||||||
@Override
|
@Override
|
||||||
public void onUpstreamFinish() throws Exception {
|
public void onUpstreamFinish() throws Exception {
|
||||||
if (buffer.isEmpty()) completeStage();
|
if (buffer.isEmpty()) completeStage();
|
||||||
// elements left in buffer, keep accepting downstream pulls
|
else {
|
||||||
// and push from buffer until buffer is emitted
|
// There are elements left in buffer, so
|
||||||
|
// we keep accepting downstream pulls and push from buffer until emptied.
|
||||||
|
//
|
||||||
|
// It might be though, that the upstream finished while it was pulled, in which
|
||||||
|
// case we will not get an onPull from the downstream, because we already had one.
|
||||||
|
// In that case we need to emit from the buffer.
|
||||||
|
if (isAvailable(out)) emitChunk();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,15 @@ class RecipeByteStrings extends RecipeSpec {
|
||||||
|
|
||||||
override def onUpstreamFinish(): Unit = {
|
override def onUpstreamFinish(): Unit = {
|
||||||
if (buffer.isEmpty) completeStage()
|
if (buffer.isEmpty) completeStage()
|
||||||
// elements left in buffer, keep accepting downstream pulls
|
else {
|
||||||
// and push from buffer until buffer is emitted
|
// There are elements left in buffer, so
|
||||||
|
// we keep accepting downstream pulls and push from buffer until emptied.
|
||||||
|
//
|
||||||
|
// It might be though, that the upstream finished while it was pulled, in which
|
||||||
|
// case we will not get an onPull from the downstream, because we already had one.
|
||||||
|
// In that case we need to emit from the buffer.
|
||||||
|
if (isAvailable(out)) emitChunk()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -903,7 +903,10 @@ object MiMa extends AutoPlugin {
|
||||||
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages#StatusOrBuilder.hasReplyToStatus"),
|
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages#StatusOrBuilder.hasReplyToStatus"),
|
||||||
|
|
||||||
// #20543 GraphStage subtypes should not be private to akka
|
// #20543 GraphStage subtypes should not be private to akka
|
||||||
ProblemFilters.exclude[DirectAbstractMethodProblem]("akka.stream.ActorMaterializer.actorOf")
|
ProblemFilters.exclude[DirectAbstractMethodProblem]("akka.stream.ActorMaterializer.actorOf"),
|
||||||
|
|
||||||
|
// Interpreter internals change
|
||||||
|
ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.stream.stage.GraphStageLogic.portToConn")
|
||||||
),
|
),
|
||||||
"2.4.9" -> Seq(
|
"2.4.9" -> Seq(
|
||||||
// #20994 adding new decode method, since we're on JDK7+ now
|
// #20994 adding new decode method, since we're on JDK7+ now
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue