You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -117,7 +117,7 @@ public interface Publisher<T> {
117
117
|<a name="1.11">11</a>|A `Publisher` MAY support multiple `Subscriber`s and decides whether each `Subscription` is unicast or multicast. |
118
118
| [:bulb:](#1.11"1.11 explained") |*The intent of this rule is to give Publisher implementations the flexibility to decide how many, if any, Subscribers they will support, and how elements are going to be distributed.*|
@@ -157,7 +157,7 @@ public interface Subscriber<T> {
157
157
| <a name="2.13">13</a> | Calling `onSubscribe`, `onNext`, `onError` or `onComplete` MUST [return normally](#term_return_normally) except when any provided parameter is `null` in which case it MUST throw a `java.lang.NullPointerException` to the caller, for all other situations the only legal way for a `Subscriber` to signal failure is by cancelling its `Subscription`. In the case that this rule is violated, any associated `Subscription` to the `Subscriber` MUST be considered as cancelled, and the caller MUST raise this error condition in a fashion that is adequate for the runtime environment. |
158
158
| [:bulb:](#2.13 "2.13 explained") | *The intent of this rule is to establish the semantics for the methods of Subscriber and what the Publisher is allowed to do in which case this rule is violated. «Raise this error condition in a fashion that is adequate for the runtime environment» could mean logging the error—or otherwise make someone or something aware of the situation—as the error cannot be signalled to the faulty Subscriber.* |
@@ -205,7 +205,7 @@ public interface Subscription {
205
205
206
206
A `Subscription` is shared by exactly one `Publisher` and one `Subscriber` for the purpose of mediating the data exchange between this pair. This is the reason why the `subscribe()` method does not return the created `Subscription`, but instead returns `void`; the `Subscription` is only passed to the `Subscriber` via the `onSubscribe` callback.
Copy file name to clipboardExpand all lines: RELEASE-NOTES.md
+8-8
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Release notes for Reactive Streams
2
2
3
-
# Version 1.0.3-RC1 released on 2019-08-15
3
+
# Version 1.0.3 released on 2019-08-23
4
4
5
5
## Announcement:
6
6
7
-
We—the Reactive Streams community—are pleased to announce the immediate availability of `Reactive Streams 1.0.3-RC1`. This update to `Reactive Streams` brings the following improvements over `1.0.2`.
7
+
We—the Reactive Streams community—are pleased to announce the immediate availability of `Reactive Streams 1.0.3`. This update to `Reactive Streams` brings the following improvements over `1.0.2`.
8
8
9
9
## Highlights:
10
10
@@ -22,7 +22,7 @@ We—the Reactive Streams community—are pleased to announce the immediate avai
22
22
- Artifacts
23
23
+ FlowAdapters artifact removed, FlowAdapters moved into the core jar ([#424](https://github.com/reactive-streams/reactive-streams-jvm/issues/424))
24
24
25
-
## Specification clarifications 1.0.3-RC1
25
+
## Specification clarifications 1.0.3
26
26
27
27
## Glossary term "External synchronization" replaced by "Serial(ly)"
28
28
@@ -36,7 +36,7 @@ We—the Reactive Streams community—are pleased to announce the immediate avai
36
36
37
37
*The intent of this rule is to make it clear that external synchronization must be employed if the Publisher intends to send signals from multiple/different threads.*
38
38
39
-
**1.0.3-RC1:**`onSubscribe`, `onNext`, `onError` and `onComplete` signaled to a `Subscriber` MUST be signaled serially.
39
+
**1.0.3:**`onSubscribe`, `onNext`, `onError` and `onComplete` signaled to a `Subscriber` MUST be signaled serially.
40
40
41
41
*The intent of this rule is to permit the signalling of signals (including from multiple threads) if and only if a happens-before relation between each of the signals is established.*
42
42
@@ -46,7 +46,7 @@ We—the Reactive Streams community—are pleased to announce the immediate avai
46
46
47
47
*The intent of this rule is to establish that it is the responsibility of the Subscriber to signal when, and how many, elements it is able and willing to receive.*
48
48
49
-
**1.0.3-RC1:** A `Subscriber` MUST signal demand via `Subscription.request(long n)` to receive `onNext` signals.
49
+
**1.0.3:** A `Subscriber` MUST signal demand via `Subscription.request(long n)` to receive `onNext` signals.
50
50
51
51
*The intent of this rule is to establish that it is the responsibility of the Subscriber to decide when and how many elements it is able and willing to receive. To avoid signal reordering caused by reentrant Subscription methods, it is strongly RECOMMENDED for synchronous Subscriber implementations to invoke Subscription methods at the very end of any signal processing. It is RECOMMENDED that Subscribers request the upper limit of what they are able to process, as requesting only one element at a time results in an inherently inefficient "stop-and-wait" protocol.*
52
52
@@ -56,7 +56,7 @@ We—the Reactive Streams community—are pleased to announce the immediate avai
56
56
57
57
*The intent of this rule is to prevent that two, or more, separate Publishers from thinking that they can interact with the same Subscriber. Enforcing this rule means that resource leaks are prevented since extra Subscriptions will be cancelled.*
58
58
59
-
**1.0.3-RC1:** A `Subscriber` MUST call `Subscription.cancel()` on the given `Subscription` after an `onSubscribe` signal if it already has an active `Subscription`
59
+
**1.0.3:** A `Subscriber` MUST call `Subscription.cancel()` on the given `Subscription` after an `onSubscribe` signal if it already has an active `Subscription`
60
60
61
61
*The intent of this rule is to prevent that two, or more, separate Publishers from trying to interact with the same Subscriber. Enforcing this rule means that resource leaks are prevented since extra Subscriptions will be cancelled. Failure to conform to this rule may lead to violations of Publisher rule 1, amongst others. Such violations can lead to hard-to-diagnose bugs.*
62
62
@@ -66,11 +66,11 @@ We—the Reactive Streams community—are pleased to announce the immediate avai
66
66
67
67
*The intent of this rule is to establish that external synchronization must be added if a Subscriber will be using a Subscription concurrently by two or more threads.*
68
68
69
-
**1.0.3-RC1:** A Subscriber MUST ensure that all calls on its Subscription's request and cancel methods are performed serially.
69
+
**1.0.3:** A Subscriber MUST ensure that all calls on its Subscription's request and cancel methods are performed serially.
70
70
71
71
*The intent of this rule is to permit the calling of the request and cancel methods (including from multiple threads) if and only if a happens-before relation between each of the calls is established.*
72
72
73
-
## TCK alterations 1.0.3-RC1
73
+
## TCK alterations 1.0.3
74
74
75
75
-`PublisherVerification.optional_spec105_emptyStreamMustTerminateBySignallingOnComplete` fails if the publisher completes synchronously ([#422](https://github.com/reactive-streams/reactive-streams-jvm/issues/422))
76
76
- IdentityFlowProcessorVerification throws NPE when `createFailedFlowPublisher` returns null ([#425](https://github.com/reactive-streams/reactive-streams-jvm/issues/425))
0 commit comments