GitHub user NicoK opened a pull request: https://github.com/apache/flink/pull/5914
[FLINK-9256][network] fix NPE in SingleInputGate#updateInputChannel() for non-credit based flow control ## What is the purpose of the change `SingleInputGate#updateInputChannel()` fails to update an unknown into a remote partition without credit based flow control due to a `NullPointerException` resulting from `networkBufferPool == null`. ## Brief change log - make `SingleInputGate` aware of credit-based flow control - only try to assign exclusive buffers in `SingleInputGate` if credit-based - replace some Mockito use in `SingleInputGateTest` ## Verifying this change This change added tests and can be verified as follows: - extend `SingleInputGateTest` with credit and non-credit based test variants - add a test for `SingleInputGate#updateInputChannel()` in both modes ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): **no** - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: **no** - The serializers: **no** - The runtime per-record code paths (performance sensitive): **no** - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: **no** - The S3 file system connector: **no** ## Documentation - Does this pull request introduce a new feature? (yes / no) - If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented) You can merge this pull request into a Git repository by running: $ git pull https://github.com/NicoK/flink flink-9256 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/5914.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #5914 ---- commit c5fb35ace872c5479a037ec2e42b1cefdfe502a8 Author: Nico Kruber <nico@...> Date: 2018-04-25T16:28:48Z [FLINK-9256][network] fix NPE in SingleInputGate#updateInputChannel() for non-credit based flow control ---- ---