Class groovyx.net.http.JavaHttpOptionsSpec

10

tests

0

failures

0

ignored

2.331s

duration

100%

successful

Tests

Test Duration Result
options(): HTTP 0.214s passed
options(): HTTPS 0.690s passed
options(Class,Closure): HTTP 0.127s passed
options(Class,Closure): HTTPS 0.228s passed
options(Class,Consumer): HTTP 0.064s passed
options(Class,Consumer): HTTPS 0.263s passed
options(Closure): HTTP 0.177s passed
options(Closure): HTTPS 0.311s passed
options(Consumer): HTTP 0.101s passed
options(Consumer): HTTPS 0.156s passed

Standard output

19:16:19.830 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@4ba2915
19:16:19.837 [XNIO-14 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-1', selector sun.nio.ch.EPollSelectorImpl@496ec904
19:16:19.838 [XNIO-14 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-2', selector sun.nio.ch.EPollSelectorImpl@23dd49fb
19:16:19.840 [XNIO-14 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-3', selector sun.nio.ch.EPollSelectorImpl@7430479f
19:16:19.840 [XNIO-14 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-4', selector sun.nio.ch.EPollSelectorImpl@28724ceb
19:16:19.841 [XNIO-14 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-5', selector sun.nio.ch.EPollSelectorImpl@1a6486fe
19:16:19.844 [XNIO-14 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-6', selector sun.nio.ch.EPollSelectorImpl@34452578
19:16:19.846 [XNIO-14 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-7', selector sun.nio.ch.EPollSelectorImpl@6da804ad
19:16:19.847 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:19.847 [XNIO-14 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 Accept', selector sun.nio.ch.EPollSelectorImpl@3889c523
19:16:19.850 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:19.851 [XNIO-14 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-14 I/O-8', selector sun.nio.ch.EPollSelectorImpl@384a7880
19:16:19.884 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:34009/foo
19:16:19.886 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:19.891 [XNIO-14 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:34009]}, cookies=[:]): <empty> }
19:16:19.894 [XNIO-14 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:19.895 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:19.896 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:19.896 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:19.896 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:19.896 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:19.896 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:19.896 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:19.948 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:34009/foo
19:16:19.948 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:19.960 [XNIO-14 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:34009]}, cookies=[:]): <empty> }
19:16:20.019 [XNIO-14 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:20.020 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:20.021 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@4ba2915
19:16:20.025 [XNIO-14 task-2] DEBUG ersatz.undertow.request.io - UT005013: An IOException occurred
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
	at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:170)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:242)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:739)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:229)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
	at ersatz.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
	at ersatz.xnio.channels.Channels.flushBlocking(Channels.java:63)
	at ersatz.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:344)
	at ersatz.undertow.io.BlockingSenderImpl.close(BlockingSenderImpl.java:170)
	at ersatz.undertow.io.DefaultIoCallback.onComplete(DefaultIoCallback.java:54)
	at ersatz.undertow.io.BlockingSenderImpl.invokeOnComplete(BlockingSenderImpl.java:227)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:95)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:117)
	at com.stehno.ersatz.ErsatzServer.send(ErsatzServer.groovy:494)
	at com.stehno.ersatz.ErsatzServer.access$0(ErsatzServer.groovy)
	at com.stehno.ersatz.ErsatzServer$1.handleRequest(ErsatzServer.groovy:370)
	at ersatz.undertow.server.handlers.HttpTraceHandler.handleRequest(HttpTraceHandler.java:70)
	at ersatz.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72)
	at ersatz.undertow.server.Connectors.executeRootHandler(Connectors.java:332)
	at ersatz.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: java.nio.channels.ClosedByInterruptException: null
		at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:478)
		at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:164)
		... 22 common frames omitted
19:16:20.037 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@5052ece9
19:16:20.070 [XNIO-15 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-1', selector sun.nio.ch.EPollSelectorImpl@52a9f8cf
19:16:20.074 [XNIO-15 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-2', selector sun.nio.ch.EPollSelectorImpl@16c8c6b5
19:16:20.079 [XNIO-15 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-3', selector sun.nio.ch.EPollSelectorImpl@21ac277d
19:16:20.094 [XNIO-15 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-4', selector sun.nio.ch.EPollSelectorImpl@33c64b2a
19:16:20.106 [XNIO-15 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-5', selector sun.nio.ch.EPollSelectorImpl@3a993331
19:16:20.122 [XNIO-15 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-6', selector sun.nio.ch.EPollSelectorImpl@5d46c338
19:16:20.136 [XNIO-15 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-7', selector sun.nio.ch.EPollSelectorImpl@41610cae
19:16:20.139 [XNIO-15 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 I/O-8', selector sun.nio.ch.EPollSelectorImpl@45637c5f
19:16:20.146 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:20.147 [XNIO-15 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-15 Accept', selector sun.nio.ch.EPollSelectorImpl@7ef7427b
19:16:20.147 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:20.154 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:43367/foo
19:16:20.155 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:20.669 [XNIO-15 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:43367]}, cookies=[:]): <empty> }
19:16:20.671 [XNIO-15 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:20.672 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:20.673 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:20.673 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:20.673 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:20.673 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:20.673 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:20.673 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:20.675 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:43367/foo
19:16:20.675 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:20.712 [XNIO-15 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:43367]}, cookies=[:]): <empty> }
19:16:20.714 [XNIO-15 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:20.715 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:20.715 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:20.715 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:20.716 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:20.716 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:20.716 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:20.716 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:20.717 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@5052ece9
19:16:20.745 [XNIO-15 task-5] DEBUG ersatz.undertow.request.io - UT005013: An IOException occurred
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
	at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:170)
	at ersatz.undertow.protocols.ssl.SslConduit.doWrap(SslConduit.java:892)
	at ersatz.undertow.protocols.ssl.SslConduit.write(SslConduit.java:371)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:242)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:739)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:229)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
	at ersatz.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
	at ersatz.xnio.channels.Channels.flushBlocking(Channels.java:63)
	at ersatz.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:344)
	at ersatz.undertow.io.BlockingSenderImpl.close(BlockingSenderImpl.java:170)
	at ersatz.undertow.io.DefaultIoCallback.onComplete(DefaultIoCallback.java:54)
	at ersatz.undertow.io.BlockingSenderImpl.invokeOnComplete(BlockingSenderImpl.java:227)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:95)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:117)
	at com.stehno.ersatz.ErsatzServer.send(ErsatzServer.groovy:494)
	at com.stehno.ersatz.ErsatzServer.access$0(ErsatzServer.groovy)
	at com.stehno.ersatz.ErsatzServer$1.handleRequest(ErsatzServer.groovy:370)
	at ersatz.undertow.server.handlers.HttpTraceHandler.handleRequest(HttpTraceHandler.java:70)
	at ersatz.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72)
	at ersatz.undertow.server.Connectors.executeRootHandler(Connectors.java:332)
	at ersatz.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: java.nio.channels.ClosedByInterruptException: null
		at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:478)
		at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:164)
		... 24 common frames omitted
19:16:20.755 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@598e2ecc
19:16:20.786 [XNIO-16 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-2', selector sun.nio.ch.EPollSelectorImpl@16f355a4
19:16:20.794 [XNIO-16 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-1', selector sun.nio.ch.EPollSelectorImpl@446f4426
19:16:20.796 [XNIO-16 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-4', selector sun.nio.ch.EPollSelectorImpl@300af4fb
19:16:20.797 [XNIO-16 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-3', selector sun.nio.ch.EPollSelectorImpl@55722e8d
19:16:20.802 [XNIO-16 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-5', selector sun.nio.ch.EPollSelectorImpl@633f6c2e
19:16:20.818 [XNIO-16 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-6', selector sun.nio.ch.EPollSelectorImpl@2b895be6
19:16:20.830 [XNIO-16 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-7', selector sun.nio.ch.EPollSelectorImpl@4f88cf40
19:16:20.846 [XNIO-16 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 I/O-8', selector sun.nio.ch.EPollSelectorImpl@27274631
19:16:20.866 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:20.866 [XNIO-16 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-16 Accept', selector sun.nio.ch.EPollSelectorImpl@96ebc7a
19:16:20.871 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:20.880 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:44453/foo
19:16:20.880 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:20.885 [XNIO-16 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:44453]}, cookies=[:]): <empty> }
19:16:20.886 [XNIO-16 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:20.888 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:20.888 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:20.888 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:20.888 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:20.889 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:20.889 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:20.889 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:20.891 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:44453/foo
19:16:20.892 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:20.923 [XNIO-16 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:44453]}, cookies=[:]): <empty> }
19:16:20.925 [XNIO-16 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:20.926 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:20.928 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@598e2ecc
19:16:20.935 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@13982964
19:16:20.947 [XNIO-16 task-2] DEBUG ersatz.undertow.request.io - UT005013: An IOException occurred
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
	at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:170)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:242)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:739)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:229)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
	at ersatz.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
	at ersatz.xnio.channels.Channels.flushBlocking(Channels.java:63)
	at ersatz.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:344)
	at ersatz.undertow.io.BlockingSenderImpl.close(BlockingSenderImpl.java:170)
	at ersatz.undertow.io.DefaultIoCallback.onComplete(DefaultIoCallback.java:54)
	at ersatz.undertow.io.BlockingSenderImpl.invokeOnComplete(BlockingSenderImpl.java:227)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:95)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:117)
	at com.stehno.ersatz.ErsatzServer.send(ErsatzServer.groovy:494)
	at com.stehno.ersatz.ErsatzServer.access$0(ErsatzServer.groovy)
	at com.stehno.ersatz.ErsatzServer$1.handleRequest(ErsatzServer.groovy:370)
	at ersatz.undertow.server.handlers.HttpTraceHandler.handleRequest(HttpTraceHandler.java:70)
	at ersatz.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72)
	at ersatz.undertow.server.Connectors.executeRootHandler(Connectors.java:332)
	at ersatz.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: java.nio.channels.ClosedByInterruptException: null
		at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:478)
		at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:164)
		... 22 common frames omitted
19:16:20.948 [XNIO-17 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-1', selector sun.nio.ch.EPollSelectorImpl@c7fd9dd
19:16:20.958 [XNIO-17 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-2', selector sun.nio.ch.EPollSelectorImpl@40b45a14
19:16:20.972 [XNIO-17 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-3', selector sun.nio.ch.EPollSelectorImpl@15b37126
19:16:20.986 [XNIO-17 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-4', selector sun.nio.ch.EPollSelectorImpl@4eafc685
19:16:20.999 [XNIO-17 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-5', selector sun.nio.ch.EPollSelectorImpl@38c94f92
19:16:20.999 [XNIO-17 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-6', selector sun.nio.ch.EPollSelectorImpl@57a54f63
19:16:21.001 [XNIO-17 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-7', selector sun.nio.ch.EPollSelectorImpl@452e8d2d
19:16:21.004 [XNIO-17 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 I/O-8', selector sun.nio.ch.EPollSelectorImpl@71846173
19:16:21.005 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:21.005 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:21.008 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:34745/foo
19:16:21.008 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.019 [XNIO-17 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-17 Accept', selector sun.nio.ch.EPollSelectorImpl@68cb5bd2
19:16:21.194 [XNIO-17 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:34745]}, cookies=[:]): <empty> }
19:16:21.195 [XNIO-17 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.198 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.199 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:34745/foo
19:16:21.199 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.239 [XNIO-17 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:34745]}, cookies=[:]): <empty> }
19:16:21.240 [XNIO-17 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.241 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.242 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.242 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.242 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.242 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.242 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.242 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.243 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@13982964
19:16:21.258 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@1c873bf8
19:16:21.268 [XNIO-18 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-1', selector sun.nio.ch.EPollSelectorImpl@265ef746
19:16:21.271 [XNIO-18 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-2', selector sun.nio.ch.EPollSelectorImpl@35523305
19:16:21.276 [XNIO-18 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-3', selector sun.nio.ch.EPollSelectorImpl@1721a594
19:16:21.281 [XNIO-18 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-4', selector sun.nio.ch.EPollSelectorImpl@779377be
19:16:21.282 [XNIO-18 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-5', selector sun.nio.ch.EPollSelectorImpl@78054743
19:16:21.285 [XNIO-18 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-6', selector sun.nio.ch.EPollSelectorImpl@47ea6608
19:16:21.298 [XNIO-18 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-7', selector sun.nio.ch.EPollSelectorImpl@668562a4
19:16:21.303 [XNIO-18 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 I/O-8', selector sun.nio.ch.EPollSelectorImpl@2219ef68
19:16:21.314 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:21.314 [XNIO-18 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-18 Accept', selector sun.nio.ch.EPollSelectorImpl@68e06871
19:16:21.317 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:21.325 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:36875/foo
19:16:21.325 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.342 [XNIO-18 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:36875]}, cookies=[:]): <empty> }
19:16:21.344 [XNIO-18 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.345 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.347 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:36875/foo
19:16:21.348 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.349 [XNIO-18 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:36875]}, cookies=[:]): <empty> }
19:16:21.350 [XNIO-18 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.350 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.351 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.351 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.351 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.351 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.351 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.351 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.352 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@1c873bf8
19:16:21.358 [XNIO-18 task-2] DEBUG ersatz.undertow - Failed to schedule task ersatz.undertow.server.protocol.ParseTimeoutUpdater@5de74bd8 as worker is shutting down
java.util.concurrent.RejectedExecutionException: XNIO007007: Thread is terminating
	at ersatz.xnio.nio.WorkerThread.executeAfter(WorkerThread.java:617)
	at ersatz.undertow.util.WorkerUtils.executeAfter(WorkerUtils.java:46)
	at ersatz.undertow.server.protocol.ParseTimeoutUpdater.handleSchedule(ParseTimeoutUpdater.java:107)
	at ersatz.undertow.server.protocol.ParseTimeoutUpdater.connectionIdle(ParseTimeoutUpdater.java:85)
	at ersatz.undertow.server.protocol.http.HttpReadListener.newRequest(HttpReadListener.java:118)
	at ersatz.undertow.server.protocol.http.HttpReadListener.exchangeComplete(HttpReadListener.java:324)
	at ersatz.undertow.server.protocol.http.HttpServerConnection.exchangeComplete(HttpServerConnection.java:232)
	at ersatz.undertow.server.HttpServerExchange.invokeExchangeCompleteListeners(HttpServerExchange.java:1261)
	at ersatz.undertow.server.HttpServerExchange.terminateResponse(HttpServerExchange.java:1538)
	at ersatz.undertow.server.Connectors.terminateResponse(Connectors.java:143)
	at ersatz.undertow.server.protocol.http.ServerFixedLengthStreamSinkConduit.channelFinished(ServerFixedLengthStreamSinkConduit.java:58)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.exitFlush(AbstractFixedLengthStreamSinkConduit.java:316)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:234)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
	at ersatz.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
	at ersatz.xnio.channels.Channels.flushBlocking(Channels.java:63)
	at ersatz.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:344)
	at ersatz.undertow.io.BlockingSenderImpl.close(BlockingSenderImpl.java:170)
	at ersatz.undertow.io.DefaultIoCallback.onComplete(DefaultIoCallback.java:54)
	at ersatz.undertow.io.BlockingSenderImpl.invokeOnComplete(BlockingSenderImpl.java:227)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:95)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:117)
	at com.stehno.ersatz.ErsatzServer.send(ErsatzServer.groovy:494)
	at com.stehno.ersatz.ErsatzServer.access$0(ErsatzServer.groovy)
	at com.stehno.ersatz.ErsatzServer$1.handleRequest(ErsatzServer.groovy:370)
	at ersatz.undertow.server.handlers.HttpTraceHandler.handleRequest(HttpTraceHandler.java:70)
	at ersatz.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72)
	at ersatz.undertow.server.Connectors.executeRootHandler(Connectors.java:332)
	at ersatz.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
19:16:21.364 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@1526174b
19:16:21.366 [XNIO-19 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-1', selector sun.nio.ch.EPollSelectorImpl@36495b9c
19:16:21.367 [XNIO-19 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-2', selector sun.nio.ch.EPollSelectorImpl@6497b504
19:16:21.373 [XNIO-19 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-3', selector sun.nio.ch.EPollSelectorImpl@7decc5e4
19:16:21.374 [XNIO-19 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-4', selector sun.nio.ch.EPollSelectorImpl@784f2a08
19:16:21.379 [XNIO-19 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-5', selector sun.nio.ch.EPollSelectorImpl@5c43ab0f
19:16:21.383 [XNIO-19 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-6', selector sun.nio.ch.EPollSelectorImpl@1ed1994c
19:16:21.383 [XNIO-19 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-7', selector sun.nio.ch.EPollSelectorImpl@250cb0a6
19:16:21.384 [XNIO-19 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 I/O-8', selector sun.nio.ch.EPollSelectorImpl@3fe000e7
19:16:21.384 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:21.385 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:21.387 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:44173/foo
19:16:21.387 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.388 [XNIO-19 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-19 Accept', selector sun.nio.ch.EPollSelectorImpl@55db0d3e
19:16:21.467 [XNIO-19 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:44173]}, cookies=[:]): <empty> }
19:16:21.470 [XNIO-19 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.472 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.473 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:44173/foo
19:16:21.473 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.506 [XNIO-19 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:44173]}, cookies=[:]): <empty> }
19:16:21.511 [XNIO-19 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.512 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.512 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.512 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.512 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.512 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.512 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.513 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.513 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@1526174b
19:16:21.526 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@185a8dae
19:16:21.526 [XNIO-19 task-5] DEBUG ersatz.undertow.request.io - UT005013: An IOException occurred
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
	at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:170)
	at ersatz.undertow.protocols.ssl.SslConduit.doWrap(SslConduit.java:892)
	at ersatz.undertow.protocols.ssl.SslConduit.write(SslConduit.java:371)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:242)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:739)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:229)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
	at ersatz.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
	at ersatz.xnio.channels.Channels.flushBlocking(Channels.java:63)
	at ersatz.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:344)
	at ersatz.undertow.io.BlockingSenderImpl.close(BlockingSenderImpl.java:170)
	at ersatz.undertow.io.DefaultIoCallback.onComplete(DefaultIoCallback.java:54)
	at ersatz.undertow.io.BlockingSenderImpl.invokeOnComplete(BlockingSenderImpl.java:227)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:95)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:117)
	at com.stehno.ersatz.ErsatzServer.send(ErsatzServer.groovy:494)
	at com.stehno.ersatz.ErsatzServer.access$0(ErsatzServer.groovy)
	at com.stehno.ersatz.ErsatzServer$1.handleRequest(ErsatzServer.groovy:370)
	at ersatz.undertow.server.handlers.HttpTraceHandler.handleRequest(HttpTraceHandler.java:70)
	at ersatz.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72)
	at ersatz.undertow.server.Connectors.executeRootHandler(Connectors.java:332)
	at ersatz.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: java.nio.channels.ClosedByInterruptException: null
		at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:478)
		at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:164)
		... 24 common frames omitted
19:16:21.535 [XNIO-20 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-1', selector sun.nio.ch.EPollSelectorImpl@5563384b
19:16:21.540 [XNIO-20 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-2', selector sun.nio.ch.EPollSelectorImpl@48be52dd
19:16:21.542 [XNIO-20 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-3', selector sun.nio.ch.EPollSelectorImpl@1fd26de6
19:16:21.545 [XNIO-20 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-4', selector sun.nio.ch.EPollSelectorImpl@ac8f8ad
19:16:21.594 [XNIO-20 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-5', selector sun.nio.ch.EPollSelectorImpl@277ee207
19:16:21.595 [XNIO-20 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-6', selector sun.nio.ch.EPollSelectorImpl@2795d46f
19:16:21.595 [XNIO-20 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-7', selector sun.nio.ch.EPollSelectorImpl@38ad6c3b
19:16:21.602 [XNIO-20 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 I/O-8', selector sun.nio.ch.EPollSelectorImpl@5cb799e7
19:16:21.603 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:21.604 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:21.608 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:46855/foo
19:16:21.609 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.618 [XNIO-20 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-20 Accept', selector sun.nio.ch.EPollSelectorImpl@53ae152d
19:16:21.631 [XNIO-20 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:46855]}, cookies=[:]): <empty> }
19:16:21.632 [XNIO-20 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.633 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.633 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.633 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.633 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.633 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.634 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.634 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.636 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:46855/foo
19:16:21.636 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.637 [XNIO-20 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:46855]}, cookies=[:]): <empty> }
19:16:21.638 [XNIO-20 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.639 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.640 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.640 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.640 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.640 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.640 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.640 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.641 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@185a8dae
19:16:21.645 [XNIO-20 I/O-6] DEBUG ersatz.undertow - Failed to schedule task ersatz.undertow.server.protocol.ParseTimeoutUpdater@6150a318 as worker is shutting down
java.util.concurrent.RejectedExecutionException: XNIO007007: Thread is terminating
	at ersatz.xnio.nio.WorkerThread.executeAfter(WorkerThread.java:617)
	at ersatz.undertow.util.WorkerUtils.executeAfter(WorkerUtils.java:46)
	at ersatz.undertow.server.protocol.ParseTimeoutUpdater.handleSchedule(ParseTimeoutUpdater.java:107)
	at ersatz.undertow.server.protocol.ParseTimeoutUpdater.connectionIdle(ParseTimeoutUpdater.java:85)
	at ersatz.undertow.server.protocol.http.HttpReadListener.newRequest(HttpReadListener.java:118)
	at ersatz.undertow.server.protocol.http.HttpReadListener.exchangeComplete(HttpReadListener.java:310)
	at ersatz.undertow.server.protocol.http.HttpServerConnection.exchangeComplete(HttpServerConnection.java:232)
	at ersatz.undertow.server.HttpServerExchange.invokeExchangeCompleteListeners(HttpServerExchange.java:1261)
	at ersatz.undertow.server.HttpServerExchange.closeAndFlushResponse(HttpServerExchange.java:1675)
	at ersatz.undertow.server.HttpServerExchange.endExchange(HttpServerExchange.java:1665)
	at ersatz.undertow.server.AbstractServerConnection$CloseSetter.handleEvent(AbstractServerConnection.java:316)
	at ersatz.undertow.server.AbstractServerConnection$CloseSetter.handleEvent(AbstractServerConnection.java:296)
	at ersatz.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
	at ersatz.xnio.StreamConnection.invokeCloseListener(StreamConnection.java:80)
	at ersatz.xnio.Connection.writeClosed(Connection.java:117)
	at ersatz.xnio.nio.AbstractNioStreamConnection.writeClosed(AbstractNioStreamConnection.java:47)
	at ersatz.xnio.nio.NioSocketConduit.terminateWrites(NioSocketConduit.java:214)
	at ersatz.xnio.nio.NioSocketConduit.truncateWrites(NioSocketConduit.java:228)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.truncateWrites(HttpResponseConduit.java:774)
	at ersatz.xnio.conduits.AbstractSinkConduit.truncateWrites(AbstractSinkConduit.java:82)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.truncateWrites(AbstractFixedLengthStreamSinkConduit.java:277)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.close(ConduitStreamSinkChannel.java:186)
	at ersatz.xnio.IoUtils.safeClose(IoUtils.java:134)
	at ersatz.xnio.conduits.WriteReadyHandler$ChannelListenerHandler.forceTermination(WriteReadyHandler.java:57)
	at ersatz.xnio.nio.NioSocketConduit.forceTermination(NioSocketConduit.java:107)
	at ersatz.xnio.nio.WorkerThread.run(WorkerThread.java:494)
19:16:21.664 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@1418ec6
19:16:21.683 [XNIO-21 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-1', selector sun.nio.ch.EPollSelectorImpl@148a177f
19:16:21.686 [XNIO-21 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-2', selector sun.nio.ch.EPollSelectorImpl@2da8d5f7
19:16:21.702 [XNIO-21 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-4', selector sun.nio.ch.EPollSelectorImpl@503879ab
19:16:21.720 [XNIO-21 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-5', selector sun.nio.ch.EPollSelectorImpl@551b07aa
19:16:21.731 [XNIO-21 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-6', selector sun.nio.ch.EPollSelectorImpl@26119359
19:16:21.702 [XNIO-21 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-3', selector sun.nio.ch.EPollSelectorImpl@ce1129a
19:16:21.739 [XNIO-21 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-7', selector sun.nio.ch.EPollSelectorImpl@51fbf54f
19:16:21.747 [XNIO-21 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 I/O-8', selector sun.nio.ch.EPollSelectorImpl@6e72c31f
19:16:21.750 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:21.751 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:21.753 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:42467/foo
19:16:21.754 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.750 [XNIO-21 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-21 Accept', selector sun.nio.ch.EPollSelectorImpl@5705ca86
19:16:21.830 [XNIO-21 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:42467]}, cookies=[:]): <empty> }
19:16:21.831 [XNIO-21 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.832 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.833 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.833 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.833 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.833 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.833 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.833 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.834 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:42467/foo
19:16:21.834 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.872 [XNIO-21 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:42467]}, cookies=[:]): <empty> }
19:16:21.873 [XNIO-21 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.874 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.874 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.874 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.874 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.874 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.875 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.875 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.876 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@1418ec6
19:16:21.884 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@6902dea7
19:16:21.886 [XNIO-22 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-1', selector sun.nio.ch.EPollSelectorImpl@7f5c3e3d
19:16:21.886 [XNIO-22 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-5', selector sun.nio.ch.EPollSelectorImpl@43029eba
19:16:21.886 [XNIO-22 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-6', selector sun.nio.ch.EPollSelectorImpl@fe0a63f
19:16:21.886 [XNIO-22 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-2', selector sun.nio.ch.EPollSelectorImpl@4c5547d
19:16:21.890 [XNIO-22 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-7', selector sun.nio.ch.EPollSelectorImpl@398d945e
19:16:21.886 [XNIO-22 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-3', selector sun.nio.ch.EPollSelectorImpl@2b199ceb
19:16:21.895 [XNIO-22 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-8', selector sun.nio.ch.EPollSelectorImpl@27ada6e6
19:16:21.886 [XNIO-22 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 I/O-4', selector sun.nio.ch.EPollSelectorImpl@752741e2
19:16:21.901 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:21.902 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:21.901 [XNIO-22 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-22 Accept', selector sun.nio.ch.EPollSelectorImpl@71a960c6
19:16:21.908 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:41331/foo
19:16:21.908 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.930 [XNIO-22 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:41331]}, cookies=[:]): <empty> }
19:16:21.932 [XNIO-22 task-1] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.933 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.935 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): http://localhost:41331/foo
19:16:21.935 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:21.941 [XNIO-22 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:41331]}, cookies=[:]): <empty> }
19:16:21.942 [XNIO-22 task-2] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:21.943 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:21.944 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@6902dea7
19:16:21.950 [Test worker] DEBUG ersatz.undertow - starting undertow server ersatz.undertow.Undertow@37f7d408
19:16:21.959 [XNIO-22 task-2] DEBUG ersatz.undertow.request.io - UT005013: An IOException occurred
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
	at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:170)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:242)
	at ersatz.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:739)
	at ersatz.undertow.conduits.AbstractFixedLengthStreamSinkConduit.flush(AbstractFixedLengthStreamSinkConduit.java:229)
	at ersatz.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
	at ersatz.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
	at ersatz.xnio.channels.Channels.flushBlocking(Channels.java:63)
	at ersatz.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:344)
	at ersatz.undertow.io.BlockingSenderImpl.close(BlockingSenderImpl.java:170)
	at ersatz.undertow.io.DefaultIoCallback.onComplete(DefaultIoCallback.java:54)
	at ersatz.undertow.io.BlockingSenderImpl.invokeOnComplete(BlockingSenderImpl.java:227)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:95)
	at ersatz.undertow.io.BlockingSenderImpl.send(BlockingSenderImpl.java:117)
	at com.stehno.ersatz.ErsatzServer.send(ErsatzServer.groovy:494)
	at com.stehno.ersatz.ErsatzServer.access$0(ErsatzServer.groovy)
	at com.stehno.ersatz.ErsatzServer$1.handleRequest(ErsatzServer.groovy:370)
	at ersatz.undertow.server.handlers.HttpTraceHandler.handleRequest(HttpTraceHandler.java:70)
	at ersatz.undertow.server.handlers.encoding.EncodingHandler.handleRequest(EncodingHandler.java:72)
	at ersatz.undertow.server.Connectors.executeRootHandler(Connectors.java:332)
	at ersatz.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: java.nio.channels.ClosedByInterruptException: null
		at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
		at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:478)
		at ersatz.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:164)
		... 22 common frames omitted
19:16:21.979 [XNIO-23 I/O-1] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-1', selector sun.nio.ch.EPollSelectorImpl@5549e73b
19:16:21.995 [XNIO-23 I/O-2] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-2', selector sun.nio.ch.EPollSelectorImpl@652bb97
19:16:22.015 [XNIO-23 I/O-3] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-3', selector sun.nio.ch.EPollSelectorImpl@32037147
19:16:22.028 [XNIO-23 I/O-4] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-4', selector sun.nio.ch.EPollSelectorImpl@1d8ab6b2
19:16:22.040 [XNIO-23 I/O-5] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-5', selector sun.nio.ch.EPollSelectorImpl@2cacfc13
19:16:22.043 [XNIO-23 I/O-6] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-6', selector sun.nio.ch.EPollSelectorImpl@485ad201
19:16:22.053 [XNIO-23 I/O-7] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-7', selector sun.nio.ch.EPollSelectorImpl@538559d
19:16:22.059 [XNIO-23 I/O-8] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 I/O-8', selector sun.nio.ch.EPollSelectorImpl@2962552e
19:16:22.074 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTP for interface localhost and port 0
19:16:22.074 [XNIO-23 Accept] DEBUG ersatz.xnio.nio - Started channel thread 'XNIO-23 Accept', selector sun.nio.ch.EPollSelectorImpl@d105920
19:16:22.076 [Test worker] DEBUG ersatz.undertow - Configuring listener with protocol HTTPS for interface localhost and port 0
19:16:22.078 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:46481/foo
19:16:22.079 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:22.147 [XNIO-23 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:46481]}, cookies=[:]): <empty> }
19:16:22.149 [XNIO-23 task-3] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:22.150 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:22.152 [Test worker] DEBUG groovyx.net.http.JavaHttpBuilder - Request-URI(OPTIONS): https://localhost:46481/foo
19:16:22.152 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Request-Header: Accept-Encoding -> [gzip, deflate]
19:16:22.201 [XNIO-23 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Request: { OPTIONS /foo (query=[:], headers={Accept=[text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2], Connection=[keep-alive], Accept-Encoding=[gzip, deflate], User-Agent=[Java/1.8.0_222], Host=[localhost:46481]}, cookies=[:]): <empty> }
19:16:22.203 [XNIO-23 task-5] DEBUG com.stehno.ersatz.ErsatzServer - Response({Allow=[GET, HEAD, POST]}): <empty>
19:16:22.203 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.content - Response-Body: null
19:16:22.204 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> GET
19:16:22.204 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> HEAD
19:16:22.204 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Allow -> POST
19:16:22.204 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Connection -> keep-alive
19:16:22.204 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Content-Length -> 0
19:16:22.204 [Test worker] DEBUG groovy.net.http.JavaHttpBuilder.headers - Response-Header: Date -> Sun, 11 Aug 2019 00:16:18 GMT
19:16:22.205 [Test worker] DEBUG ersatz.undertow - stopping undertow server ersatz.undertow.Undertow@37f7d408