Notably fixes the case where upstream finished before the connection
was successfully established, and avoids RSTing the incoming stream
when the outgoing stream is done (which is now possible due to the
cancellation reason being propagated).
This way the stack trace will be more helpful because it contains the stage
that actually triggered the materialization.
Otherwise, we will only fail during `preStart` in the interpreter where the
stage will be failed and the error be propagated through the stream where
it can be hard to figure out what happened.
Also improve the message itself to contain the user provided name of the
sink/source.
* allow Sink.queue concurrent pulling
* replace methods with default parameters on two overloaded methods to pass binary compatibility check :/
* replace ⇒ with =>
* reformat
* add javadsl
* fix PR comments and add concurrency to Sink.queue
* fix merge after auto resolving
* duplicate changes to javadsl
* revert source changes
* add graceful terminations
* clean up tests
* optimize imports
* trigger rebuild
* cover the case when materializer shutdown before async callbacks were processed
* vars to vals; fix require messages
* disable compatibility check for @InternalApi private[akka] class
This will also mean that completion will not be blocked by elements that
will later be filtered out.
One particular use case of that would be a kind of partitioning use case,
where you put several streams behind a broadcast and each consumer will filter
out elements not handled there. In that case, the broadcast can get head-of-line
blocked when one of the consumers currently has no demand but also wouldn't
have to handle any elements because they would all be filtered out.
Extend JUnitSuite to make sure the test is included in the report.
After merging this, nothing would happen. We should then invoke
`checkTestsHaveRun` from the jenkins nightly builds. That should then
fail the build until we merge #28347 and switch the nightly builds
to run on JDK11.
* Add an overloaded version of the Flow#mapError (Java DSL) which does not use a Scala PartialFunction.
* Add test verifying mapError matching on parent class
* Add to Source, SubSource and SubFlow as well
* Unfortunately it seems the jdk9-only tests could not actually be compiled.
With these changes those can actually be compiled and ran again.
* Always link to jdk11 for java.* javadocs
* Update sbt-paradox-akka to fix linking to inner classes for javadoc
RetryFlow wraps a flow with context and allows to individually retry elements. A decider function decides if another try should be made and gives the element to try with.
Retries are backed off exponentially.
Retries are limited by maxRetries.
Inspired by the work of Gilad Hoch <gilad.hoch@thomsonreuters.com> and Martynas Mickevičius <self@2m.lt>
* SSLEngine factory instead of SSLContext and AkkaSSLConfig parameters
in TLS and Tcp
* Update TlsSpec to use SSLEngine
* Keep copy of old TlsSpec for test coverage of deprecated methods
* Update doc example of how to setup a SSLEngine
* full API and deprecations
* don't use default param values
* java doc example
* migration guide
* mima
* update to sslconfig 0.4.0
* hostname verification changed in sslconfig, so use jvm verifier
* change to mima file
* update doc sample, init SSLContext once
* remove FIXME for halfClosed
* Config to exclude class prefix from serialize-messages, #24273
* Adding no-serialization-verification-needed-class-prefix, with "akka." included
by default
* This is important now when we disable Java serialization by default.
There will be many complaints about Akka internal classes that are not marked with
NoSerializationVerificationNeeded, and we can't really sprinkle that everywhere.
* Not removing NoSerializationVerificationNeeded usage in Akka classes because that
may break bin compat, even though it's needed any more.
* fix DisabledJavaSerializerWarningSpec
* Eager creation of system materializer on system startup #26850
* System level materializers always spawned under a specific system actor #26850
* No need for RepointableActorRef logic anymore
* MiMa filter
* Make the creation timeout higher
* some messages from ActorSubscriber were also used in other places,
so moved those to impl.ActorSubscriberMessage
* WatermarkRequestStrategy used by SourceRefImp, so moved there
* because static methods are resolved by looking at extended class too,
and that results in ambigious method clash with existing create in
ActorMaterializer
* Add doc clarification about IOResult on sources
* Better error message for IOOperationIncompleteException
Co-Authored-By: Johannes Rudolph <johannes.rudolph@gmail.com>