equal
deleted
inserted
replaced
26 package jdk.internal.net.http; |
26 package jdk.internal.net.http; |
27 |
27 |
28 import java.io.IOException; |
28 import java.io.IOException; |
29 import java.lang.System.Logger.Level; |
29 import java.lang.System.Logger.Level; |
30 import java.time.Duration; |
30 import java.time.Duration; |
31 import java.util.List; |
31 import java.util.Iterator; |
|
32 import java.util.LinkedList; |
32 import java.security.AccessControlContext; |
33 import java.security.AccessControlContext; |
33 import java.util.concurrent.CompletableFuture; |
34 import java.util.concurrent.CompletableFuture; |
34 import java.util.concurrent.CompletionException; |
35 import java.util.concurrent.CompletionException; |
35 import java.util.concurrent.ExecutionException; |
36 import java.util.concurrent.ExecutionException; |
36 import java.util.concurrent.Executor; |
37 import java.util.concurrent.Executor; |
83 static final int DEFAULT_MAX_ATTEMPTS = 5; |
84 static final int DEFAULT_MAX_ATTEMPTS = 5; |
84 static final int max_attempts = Utils.getIntegerNetProperty( |
85 static final int max_attempts = Utils.getIntegerNetProperty( |
85 "jdk.httpclient.redirects.retrylimit", DEFAULT_MAX_ATTEMPTS |
86 "jdk.httpclient.redirects.retrylimit", DEFAULT_MAX_ATTEMPTS |
86 ); |
87 ); |
87 |
88 |
88 private final List<HeaderFilter> filters; |
89 private final LinkedList<HeaderFilter> filters; |
89 TimedEvent timedEvent; |
90 TimedEvent timedEvent; |
90 volatile boolean cancelled; |
91 volatile boolean cancelled; |
91 final PushGroup<T> pushGroup; |
92 final PushGroup<T> pushGroup; |
92 |
93 |
93 /** |
94 /** |
166 } |
167 } |
167 |
168 |
168 private HttpRequestImpl responseFilters(Response response) throws IOException |
169 private HttpRequestImpl responseFilters(Response response) throws IOException |
169 { |
170 { |
170 Log.logTrace("Applying response filters"); |
171 Log.logTrace("Applying response filters"); |
171 for (HeaderFilter filter : filters) { |
172 Iterator<HeaderFilter> reverseItr = filters.descendingIterator(); |
|
173 while (reverseItr.hasNext()) { |
|
174 HeaderFilter filter = reverseItr.next(); |
172 Log.logTrace("Applying {0}", filter); |
175 Log.logTrace("Applying {0}", filter); |
173 HttpRequestImpl newreq = filter.response(response); |
176 HttpRequestImpl newreq = filter.response(response); |
174 if (newreq != null) { |
177 if (newreq != null) { |
175 Log.logTrace("New request: stopping filters"); |
178 Log.logTrace("New request: stopping filters"); |
176 return newreq; |
179 return newreq; |