src/java.net.http/share/classes/java/net/http/HttpResponse.java
branchhttp-client-branch
changeset 56159 039ab5a71a5c
parent 56157 3f29747a858a
child 56160 f1b75e394b68
--- a/src/java.net.http/share/classes/java/net/http/HttpResponse.java	Tue Feb 20 10:16:00 2018 +0000
+++ b/src/java.net.http/share/classes/java/net/http/HttpResponse.java	Tue Feb 20 14:52:06 2018 +0000
@@ -300,7 +300,7 @@
          * @return a response body handler
          */
         public static <S extends Subscriber<? super List<ByteBuffer>>,T> BodyHandler<T>
-        fromSubscriber(S subscriber, Function<S,T> finisher) {
+        fromSubscriber(S subscriber, Function<S,? extends T> finisher) {
             Objects.requireNonNull(subscriber);
             Objects.requireNonNull(finisher);
             return (status, headers) -> BodySubscriber.fromSubscriber(subscriber,
@@ -393,7 +393,7 @@
          */
         public static <S extends Subscriber<? super String>,T> BodyHandler<T>
         fromLineSubscriber(S subscriber,
-                           Function<S,T> finisher,
+                           Function<? super S,? extends T> finisher,
                            String lineSeparator) {
             Objects.requireNonNull(subscriber);
             Objects.requireNonNull(finisher);
@@ -656,6 +656,7 @@
          * BodySubscriber.buffering} with a subscriber obtained from the given
          * downstream handler and the {@code bufferSize} parameter.
          *
+         * @param <T> the response body type
          * @param downstreamHandler the downstream handler
          * @param bufferSize the buffer size parameter passed to {@link
          *        BodySubscriber#buffering(BodySubscriber,int) BodySubscriber.buffering}
@@ -819,13 +820,12 @@
          * @apiNote This method can be used as an adapter between {@code
          * BodySubscriber} and {@code Flow.Subscriber}.
          *
-         * @param <S> the type of the Subscriber
          * @param subscriber the subscriber
          * @return a body subscriber
          */
-        public static <S extends Subscriber<? super List<ByteBuffer>>> BodySubscriber<Void>
-        fromSubscriber(S subscriber) {
-            return new ResponseSubscribers.SubscriberAdapter<S,Void>(subscriber, s -> null);
+        public static BodySubscriber<Void>
+        fromSubscriber(Subscriber<? super List<ByteBuffer>> subscriber) {
+            return new ResponseSubscribers.SubscriberAdapter<>(subscriber, s -> null);
         }
 
         /**
@@ -852,8 +852,8 @@
          */
         public static <S extends Subscriber<? super List<ByteBuffer>>,T> BodySubscriber<T>
         fromSubscriber(S subscriber,
-                       Function<S,T> finisher) {
-            return new ResponseSubscribers.SubscriberAdapter<S,T>(subscriber, finisher);
+                       Function<? super S,? extends T> finisher) {
+            return new ResponseSubscribers.SubscriberAdapter<>(subscriber, finisher);
         }
 
         /**
@@ -874,13 +874,12 @@
          *      fromLineSubscriber(subscriber, s -> null, StandardCharsets.UTF_8, null)
          * }</pre>
          *
-         * @param <S> the type of the Subscriber
          * @param subscriber the subscriber
          * @return a body subscriber
          */
-        public static <S extends Subscriber<? super String>> BodySubscriber<Void>
-        fromLineSubscriber(S subscriber) {
-            return fromLineSubscriber(subscriber, s -> null,
+        public static BodySubscriber<Void>
+        fromLineSubscriber(Subscriber<? super String> subscriber) {
+            return fromLineSubscriber(subscriber,  s -> null,
                     StandardCharsets.UTF_8, null);
         }
 
@@ -914,7 +913,7 @@
          */
         public static <S extends Subscriber<? super String>,T> BodySubscriber<T>
         fromLineSubscriber(S subscriber,
-                           Function<S,T> finisher,
+                           Function<? super S,? extends T> finisher,
                            Charset charset,
                            String lineSeparator) {
             return LineSubscriberAdapter.create(subscriber,
@@ -1123,6 +1122,7 @@
          * <p> The returned subscriber delegates its {@link #getBody()} method
          * to the downstream subscriber.
          *
+         * @param <T> the type of the response body
          * @param downstream the downstream subscriber
          * @param bufferSize the buffer size
          * @return a buffering body subscriber
@@ -1132,7 +1132,7 @@
                                                        int bufferSize) {
              if (bufferSize <= 0)
                  throw new IllegalArgumentException("must be greater than 0");
-             return new BufferingSubscriber<T>(downstream, bufferSize);
+             return new BufferingSubscriber<>(downstream, bufferSize);
          }
 
         /**
@@ -1170,9 +1170,9 @@
          * @return a mapping body subscriber
          */
         public static <T,U> BodySubscriber<U> mapping(BodySubscriber<T> upstream,
-                                                      Function<T, U> mapper)
+                                                      Function<? super T, ? extends U> mapper)
         {
-            return new ResponseSubscribers.MappingSubscriber<T, U>(upstream, mapper);
+            return new ResponseSubscribers.MappingSubscriber<>(upstream, mapper);
         }
     }
 }