Self Suppression IllegalArgumentException when 'onErrorResume' propagates existing exception
Sometime conditional logic is required to determine if an error signal should be handled or propagated.  The easiest and most flexible way to do this is via the use of something like this:

```
flux.onErrorResume(e -> {
   if(something){
      return just(someValue);
   else {
      throw propagate(e);
   });
```

In this above example the else clause propagates the existing exception.  This fails though due to FluxResume attempting to do `e.addSuppressed(e)` [here](https://github.com/reactor/reactor-core/blob/master/src/main/java/reactor/core/publisher/FluxResume.java#L92)

diff --git a/src/main/java/reactor/core/publisher/FluxResume.java b/src/main/java/reactor/core/publisher/FluxResume.java
index 17120d9d6..cdd99d31f 100644
--- a/src/main/java/reactor/core/publisher/FluxResume.java
+++ b/src/main/java/reactor/core/publisher/FluxResume.java
@@ -89,7 +89,9 @@ final class FluxResume<T> extends FluxSource<T, T> {
 					p = nextFactory.apply(t);
 				} catch (Throwable e) {
 					Throwable _e = Operators.onOperatorError(e);
-					_e.addSuppressed(t);
+					if(t != _e) {
+					  _e.addSuppressed(t);
+					}
 					subscriber.onError(_e);
 					return;
 				}
diff --git a/src/test/java/reactor/core/publisher/FluxResumeTest.java b/src/test/java/reactor/core/publisher/FluxResumeTest.java
index 58977f228..016c00fe5 100644
--- a/src/test/java/reactor/core/publisher/FluxResumeTest.java
+++ b/src/test/java/reactor/core/publisher/FluxResumeTest.java
@@ -18,6 +18,7 @@ package reactor.core.publisher;
 import org.junit.Assert;
 import org.junit.Test;
 import reactor.test.subscriber.AssertSubscriber;
+import reactor.core.Exceptions;
 
 public class FluxResumeTest {
 /*
@@ -222,4 +223,18 @@ public class FluxResumeTest {
 		  .assertError(NullPointerException.class);
 	}
 
+	@Test
+	public void errorPropagated() {
+		AssertSubscriber<Integer> ts = AssertSubscriber.create(0);
+
+		Exception exception = new NullPointerException("forced failure");
+		Flux.<Integer>error(exception).onErrorResumeWith(v -> {
+		  throw Exceptions.propagate(v);
+		}).subscribe(ts);
+
+		ts.assertNoValues()
+		  .assertNotComplete()
+		  .assertErrorWith(e -> Assert.assertSame(exception, e));
+	}
+
 }
['src/test/java/reactor/core/publisher/FluxResumeTest.java', 'src/main/java/reactor/core/publisher/FluxResume.java']