3838import java .net .http .HttpRequest ;
3939import java .net .http .HttpResponse ;
4040import java .nio .charset .StandardCharsets ;
41- import java .util .concurrent .atomic .AtomicInteger ;
42- import java .util .concurrent .atomic .AtomicReference ;
41+ import java .util .concurrent .CompletableFuture ;
4342import java .util .logging .ConsoleHandler ;
4443import java .util .logging .Level ;
4544import java .util .logging .Logger ;
@@ -165,9 +164,9 @@ public void testBeforeHandlerSendResponse() throws Exception {
165164 @ Test
166165 public void testAfterHandler () throws Exception {
167166 var handler = new EchoHandler ();
168- var respCode = new AtomicInteger ();
167+ var respCode = new CompletableFuture < Integer > ();
169168 var filter = Filter .afterHandler ("Log response code" ,
170- e -> respCode .set (e .getResponseCode ()));
169+ e -> respCode .complete (e .getResponseCode ()));
171170 var server = HttpServer .create (new InetSocketAddress (LOOPBACK_ADDR , 0 ), 10 );
172171 server .createContext ("/" , handler ).getFilters ().add (filter );
173172 server .start ();
@@ -176,7 +175,7 @@ public void testAfterHandler() throws Exception {
176175 var request = HttpRequest .newBuilder (uri (server , "" )).build ();
177176 var response = client .send (request , HttpResponse .BodyHandlers .ofString ());
178177 assertEquals (response .statusCode (), 200 );
179- assertEquals (response .statusCode (), respCode .get ());
178+ assertEquals (response .statusCode (), ( int ) respCode .get ());
180179 } finally {
181180 server .stop (0 );
182181 }
@@ -185,12 +184,12 @@ public void testAfterHandler() throws Exception {
185184 @ Test
186185 public void testAfterHandlerRepeated () throws Exception {
187186 var handler = new EchoHandler ();
188- var attr = new AtomicReference <String >();
187+ var attr = new CompletableFuture <String >();
189188 final var value = "some value" ;
190189 var filter1 = Filter .afterHandler ("Set attribute" ,
191190 e -> e .setAttribute ("test-attr" , value ));
192191 var filter2 = Filter .afterHandler ("Read attribute" ,
193- e -> attr .set ((String ) e .getAttribute ("test-attr" )));
192+ e -> attr .complete ((String ) e .getAttribute ("test-attr" )));
194193 var server = HttpServer .create (new InetSocketAddress (LOOPBACK_ADDR , 0 ), 10 );
195194 var context = server .createContext ("/" , handler );
196195 context .getFilters ().add (filter2 );
@@ -210,7 +209,7 @@ public void testAfterHandlerRepeated() throws Exception {
210209 @ Test
211210 public void testAfterHandlerSendResponse () throws Exception {
212211 var handler = new NoResponseHandler ();
213- var respCode = new AtomicInteger ();
212+ var respCode = new CompletableFuture < Integer > ();
214213 var filter = Filter .afterHandler ("Log response code and send response" ,
215214 e -> {
216215 try (InputStream is = e .getRequestBody ();
@@ -219,7 +218,7 @@ public void testAfterHandlerSendResponse() throws Exception {
219218 var resp = "hello world" .getBytes (StandardCharsets .UTF_8 );
220219 e .sendResponseHeaders (200 , resp .length );
221220 os .write (resp );
222- respCode .set (e .getResponseCode ());
221+ respCode .complete (e .getResponseCode ());
223222 } catch (IOException ioe ) {
224223 ioe .printStackTrace (System .out );
225224 throw new UncheckedIOException (ioe );
@@ -233,7 +232,7 @@ public void testAfterHandlerSendResponse() throws Exception {
233232 var request = HttpRequest .newBuilder (uri (server , "" )).build ();
234233 var response = client .send (request , HttpResponse .BodyHandlers .ofString ());
235234 assertEquals (response .statusCode (), 200 );
236- assertEquals (response .statusCode (), respCode .get ());
235+ assertEquals (response .statusCode (), ( int ) respCode .get ());
237236 } finally {
238237 server .stop (0 );
239238 }
@@ -242,11 +241,11 @@ public void testAfterHandlerSendResponse() throws Exception {
242241 @ Test
243242 public void testBeforeAndAfterHandler () throws Exception {
244243 var handler = new EchoHandler ();
245- var respCode = new AtomicInteger ();
244+ var respCode = new CompletableFuture < Integer > ();
246245 var beforeFilter = Filter .beforeHandler ("Add x-foo response header" ,
247246 e -> e .getResponseHeaders ().set ("x-foo" , "bar" ));
248247 var afterFilter = Filter .afterHandler ("Log response code" ,
249- e -> respCode .set (e .getResponseCode ()));
248+ e -> respCode .complete (e .getResponseCode ()));
250249 var server = HttpServer .create (new InetSocketAddress (LOOPBACK_ADDR , 0 ), 10 );
251250 var context = server .createContext ("/" , handler );
252251 context .getFilters ().add (beforeFilter );
@@ -257,9 +256,9 @@ public void testBeforeAndAfterHandler() throws Exception {
257256 var request = HttpRequest .newBuilder (uri (server , "" )).build ();
258257 var response = client .send (request , HttpResponse .BodyHandlers .ofString ());
259258 assertEquals (response .statusCode (), 200 );
260- assertEquals (response .statusCode (), respCode .get ());
261259 assertEquals (response .headers ().map ().size (), 3 );
262260 assertEquals (response .headers ().firstValue ("x-foo" ).orElseThrow (), "bar" );
261+ assertEquals (response .statusCode (), (int )respCode .get ());
263262 } finally {
264263 server .stop (0 );
265264 }
0 commit comments