Commit graph

39 commits

Author SHA1 Message Date
Johan Andrén
62e30b3c08 Update copyrights and links to the new company name #19851 2016-02-23 12:58:39 +01:00
Prayag Verma
b7783968a0 =pro #19068 All copyrights ranges and single years updated to a range ending in 2016 2016-01-25 10:20:30 +01:00
Endre Sándor Varga
5359e0f6f6 #19342 Eliminated race in SubstreamSubscriptionTimeoutSpec due to concat 2016-01-21 14:10:56 +01:00
André Rüdiger
6af9ced35c =str: various minor cleanups 2015-08-18 11:36:24 +02:00
Endre Sándor Varga
7879a5521b Rename FlowMaterializer to Materializer 2015-06-23 18:47:28 +02:00
Roland Kuhn
d462cdd1b4 =str fix sub-upstream cancellation in concatAll
- ActorProcessor terminated eagerly when ConcatAll had just taken up a
  new input stream but not yet received onSubscribe for it

- The ActorProcessor eagerly shuts itself down upon onError and that
  cannot be changed without completely reworking the Pump, so I opted
  for just tracking the outstanding substreamSubscribers that have not
  yet seen OnSubscribe and making them cancel properly when that arrives
  (possibly later).
2015-06-19 16:26:48 +02:00
Endre Sándor Varga
f4c83771bb !str #17393: Make stream-tests pass with serialize-messages=on 2015-06-02 12:32:27 +02:00
Endre Sándor Varga
8a7f6a357d =str #17453: Fix substream RS compliance, awaitAllStagesStopped and Fanin leak 2015-05-19 11:37:03 +02:00
Patrik Nordwall
45da4513af Merge pull request #17243 from akka/wip-stream-supress-deadletters-patriknw
=str Use some more DeadLetterSuppression
2015-04-22 21:35:19 +02:00
Patrik Nordwall
2a975bfb35 =str #16986 Fix memory leak in PrefixAndTail when using Sink.publisher
The problem was reproduced with the TCK PrefixAndTailTest
required_spec313_cancelMustMakeThePublisherEventuallyDropAllReferencesToTheSubscriber
The tck subscriber was still referenced. Profiling revealed that the
root cause was the VirtualPublisher that holds a reference to the
realPublisher, which was MultiStreamOutputProcessor$SubstreamOutput,
which had the reference to the subscriber. The VirtualPublisher
is created by the Sink.publisher in the test, and the test holds
on to that VirtualPublisher reference.

The solution is to null out realPublisher field in the VirtualPublisher.

The old workaround with the NullSubscriber was removed.

Also made Sink.publisher reject additional subscribers.
2015-04-21 16:11:23 +02:00
Patrik Nordwall
4a961786aa =str Use some more DeadLetterSuppression 2015-04-21 11:34:01 +02:00
Endre Sándor Varga
5559c34ca9 =str #16924: Fix FanoutProcessor to not overwrite last termination cause
Also fix FlowSpec to expect onError instead of onComplete for late subscribers
2015-03-27 14:53:04 +01:00
Patrik Nordwall
23c533fdd5 =str #16751 Update to reactive-streams 1.0-RC3
Changed rules:
* 1.9 Always onSubscribe prior to any other signals
* 1.9 NullPointerException if subscriber is null
* 3.17 Long overflow, effectively unbounded instead of onError

Fixed some more things:
* fixed some FIXME
* Long drop and take
* memory leaks in tck tests, use BeforeClass to create ActorSystem
  use AfterClass to shutdown ActorSystem
* more tck tests
* don't emit OnComplete when substream is cancelled
* work around for memory leak in PrefixAndTail
2015-03-05 17:58:24 +01:00
Patrik Nordwall
3876793988 =str #16331 Use ReactiveStreamsCompliance utility everywhere
* if onSubscribe, onError, onComplete throws exception we must not call onError,
  see 2:13 https://github.com/reactive-streams/reactive-streams
2015-02-03 13:50:24 +01:00
Patrik Nordwall
cd9d503b03 !str #15851 Rename FlowMaterializer and settings
* FlowMaterializer is now the actor independent interface
* ActorFlowMaterializer is the actor based interface
* MaterializerSettings renamed to ActorFlowMaterializerSettings
* impl.ActorBasedFlowMaterializer renamed to impl.ActorFlowMaterializerImpl
* Optimizations included in ActorFlowMaterializerSettings
* Note that http is using FlowMaterializer in api, but I suspect that it
  will currently only run with a ActorFlowMaterializer
2015-01-27 19:22:22 +01:00
Patrik Nordwall
7cf80ab3f3 =str #16602 Suppress dead letters
* akka 2.3.9
* also added missing `final` to case classes
2015-01-23 17:18:09 +01:00
Viktor Klang
bea8a46dee =str - 16467 - Updates Akka Streams to Reactive Streams 1.0.0.M3
Only failing test is for the SynchronousIterablePublisher since the TCK doesn't handle sync
publishers well (@ktoso is working to fix this for the 1.0.0.RC1)

Adds a lot of FIXMEs to make sure we fix them before we ship the final version of Akka Streams.
2014-12-09 23:58:55 +01:00
Viktor Klang
cb6da7a3d4 =str - renames ReactiveStreamsConstants to ReactiveStreamsCompliance 2014-11-19 15:31:43 +01:00
Konrad 'ktoso' Malawski
630beb0a5c =str #16315 fixes assumption that substream key is always present
Additional fix for race when timout put to mailbox, then timeout cancelled and subscribe succeeds.
So it could happen, that JUST BEFORE `subscriptionTimeout.cancel()` the
`SubstreamSubscriptionTimeout` was already put into the actor's mailbox,
the cancelling then kicks in (does nothing) and then the attaching of
the subscriber kicks in, it passes OK. So the actor gets the timeout
first and then the subscription... So the publisher is already
subscribed to by some subsciber. But now the actor gets the
SubstreamSubscriptionTimeout message, and wants to subscribe the
cancelling subscriber to it. The publisher can only handle 1 subscriber,
so attaching of the cancelling subscriber will fail - well this is not
very bad, because it will just onError the cancelling subscriber rigth
away, but it can be missleading because the debug log will contain the
"cancelling... after..." message, while it has not REALLY cancelled it.

The isAttached can not be added to handleSubscriptionTimeout because
there it's "too late" and the log message would already be sent..

So while writing this up I noticed that it's not an "error race", but
it's still a race we could avoid when putting this isAttached check
before cancelling the publisher... do you think it's worth it?
2014-11-19 10:17:33 +01:00
Björn Antonsson
d20d0570c9 Merge pull request #16282 from akka/wip-16263-subscription-timeout-ban
!str #16263 Made subscription timeout handling run mostly inside the actor
2014-11-12 13:31:01 +01:00
Björn Antonsson
5a26718050 !str #16263 Made subscription timeout handling run mostly inside the actor 2014-11-12 13:05:57 +01:00
Konrad 'ktoso' Malawski
0f4abb687f =str #16272 splitWhen should drop reference when done with substream
The completeSubstreamOutput is used to not early complete the stream,
where as invalidating would shutdown the stream too early (and elements
wouldn't be emitted as expected).
2014-11-12 11:59:06 +01:00
Konrad 'ktoso' Malawski
15abdaeb15 +str #15086 substream publishers now have subscription-timeouts 2014-11-06 15:30:50 +01:00
Konrad 'ktoso' Malawski
54e55a659c +str reintroduced the TCK, 0.4.0.M2-SNAPSHOT, passing all tests
Cheers from JavaZone!
2014-09-10 17:44:01 +02:00
Björn Antonsson
8265f92330 =str #15402 Split up MultiStream(Input|Output)Processor since SSL will use both 2014-09-10 12:14:09 +02:00
Endre Sándor Varga
3a60ed96d1 !str #15604: Removal of default fanout behavior 2014-09-04 15:49:14 +02:00
Patrik Nordwall
b6a915a68c !str #15289 Java API for ActorPublisher and ActorSubscriber
* had to change api because of trait+object not useable from java
* ActorSubscriber.RequestStrategy and its implementations moved to
  top level
* messages moved to ActorSubscriberMessage and ActorPublisherMessage
  object
2014-08-22 11:46:36 +02:00
Patrik Nordwall
4be757e492 =str #15608 Make sure ExposedPublisher is first 2014-08-21 12:30:16 +02:00
Endre Sándor Varga
d6fbadc61e !str: #15474: Migrate to reactive-streams 0.4.0.M1 2014-07-28 11:35:20 +02:00
Johannes Rudolph
3b77234eb8 =str #15347 in concat propagate errors in secondary upstream properly 2014-06-10 14:09:08 +02:00
Endre Sándor Varga
a99902077e +str #15088, #15200: Add takeAndTail and concatAll 2014-05-22 15:19:18 +02:00
Patrik Nordwall
902e6ee6f8 +str #15173 Add user support for actor consumer endpoint
* with full control over back pressure
* and pluggable request strategy
2014-05-22 08:44:25 +02:00
Endre Sándor Varga
646b376333 +str : Various cleanups of internal streams architecture
- factor out receive blocks for inputs and outputs
 - pump uses TransferPhases and become
 - Unification of Transformer and RecoveryTransformer
2014-05-19 14:26:41 +02:00
Patrik Nordwall
e9a2585050 +str #15174 Add dispatcher setting to FlowMaterializer
* Verify dispatcher with custom default mailbox
2014-05-14 22:04:44 +02:00
Endre Sándor Varga
406d06a540 !str Initial version of Tcp implementation 2014-04-16 17:12:27 +02:00
Endre Sándor Varga
14ef65262f !str Increased test coverage 2014-04-16 17:12:23 +02:00
Patrik Nordwall
a318676f4a !str Rename ProcessGenerator to FlowMaterializer 2014-04-16 17:12:21 +02:00
Endre Sándor Varga
441144e44f !str Fixed comments round 1 2014-04-16 17:11:30 +02:00
Roland Kuhn
429f68e9d9 !str Implementation of multi-stream operations
- groupBy and splitWhen
 - static fan-ins: merge, concat, zip
 - factored out input and output conditions
 - factored out side-stream management logic
2014-04-16 17:11:27 +02:00