Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSL support broken without boringssl static dependency #384

Closed
bclozel opened this issue Jul 9, 2018 · 2 comments
Closed

SSL support broken without boringssl static dependency #384

bclozel opened this issue Jul 9, 2018 · 2 comments
Labels
type/bug A general bug
Milestone

Comments

@bclozel
Copy link
Member

bclozel commented Jul 9, 2018

Since the changes in applied ca29e56, the default SSL configuration does not work without the boringssl dependency on classpath.

I'm not sure I understand the logic behind the latest changes with SSL/H2 support in reactor-netty.
It seems that we can now configure the supported protocols on the server itself, whereas the SSL configuration also has an impact on that support. This can lead to strange situations.

HTTP 1.1 with SSL, no boringSSL dependency

Without the tcnative dependency on classpath, and the following server:

SelfSignedCertificate cert = new SelfSignedCertificate();
		SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());

		DisposableServer server =
				HttpServer.create()
						.protocol(HttpProtocol.HTTP11)
						.secure(ssl -> ssl.sslContext(serverOptions))
						.port(8080)
						.handle((req, res) -> res.sendString(Mono.just("Hello")))
						.wiretap()
						.bindNow();

		new CountDownLatch(1).await();
		server.disposeNow();

Trying to send a request to the server:

curl --insecure https://localhost:8080/ -vvv
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8080 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
^C

This breaks with the following:

11:15:38.718 [main] DEBUG io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
11:15:38.771 [main] DEBUG io.netty.util.internal.PlatformDependent - Platform: MacOS
11:15:38.777 [main] DEBUG io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
11:15:38.779 [main] DEBUG io.netty.util.internal.PlatformDependent0 - Java version: 8
11:15:38.781 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
11:15:38.782 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
11:15:38.783 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
11:15:38.784 [main] DEBUG io.netty.util.internal.PlatformDependent0 - direct buffer constructor: available
11:15:38.790 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
11:15:38.790 [main] DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
11:15:38.790 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): available
11:15:38.790 [main] DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
11:15:38.791 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/72/f_r9mz9x2fg9cnvfb548pqbh0000gn/T (java.io.tmpdir)
11:15:38.791 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
11:15:38.793 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
11:15:38.793 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: 954728448 bytes
11:15:38.793 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
11:15:38.794 [main] DEBUG io.netty.util.internal.CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
11:15:39.025 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
11:15:39.025 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
11:15:39.045 [main] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.bytebuf.checkAccessible: true
11:15:39.047 [main] DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@2d6eabae
11:15:39.061 [main] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
11:15:39.061 [main] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
11:15:39.064 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 9
11:15:39.064 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 9
11:15:39.064 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
11:15:39.064 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
11:15:39.064 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
11:15:39.064 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
11:15:39.065 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
11:15:39.065 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
11:15:39.067 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
11:15:39.067 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
11:15:39.067 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: true
11:15:39.075 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
11:15:39.075 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
11:15:39.075 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
11:15:39.130 [main] DEBUG reactor.util.Loggers$LoggerFactory - Using Slf4j logging framework
11:15:39.140 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
11:15:39.140 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
11:15:39.141 [main] DEBUG io.netty.util.NetUtil - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1%lo0)
11:15:39.142 [main] DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file /proc/sys/net/core/somaxconn. Default: 128
11:15:39.213 [main] DEBUG io.netty.handler.ssl.OpenSsl - netty-tcnative not in the classpath; OpenSslEngine will be unavailable.
11:15:39.588 [main] DEBUG io.netty.handler.ssl.JdkSslContext - Default protocols (JDK): [TLSv1.2, TLSv1.1, TLSv1] 
11:15:39.588 [main] DEBUG io.netty.handler.ssl.JdkSslContext - Default cipher suites (JDK): [TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA]
11:15:39.668 [main] DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 16
11:15:39.718 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
11:15:39.719 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
11:15:39.730 [main] DEBUG io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
11:15:39.773 [main] DEBUG reactor.netty.resources.DefaultLoopEpoll - Default Epoll support : false
11:15:39.774 [main] DEBUG reactor.netty.resources.DefaultLoopKQueue - Default KQueue support : false
11:15:39.917 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 2353 (auto-detected)
11:15:39.920 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: 70:88:6b:ff:fe:81:a5:85 (auto-detected)
11:15:39.977 [reactor-http-nio-1] DEBUG reactor.netty.tcp.TcpServer - [id: 0x4604babd, L:/0:0:0:0:0:0:0:1:8080] Bound new server
11:15:43.770 [reactor-http-nio-2] WARN io.netty.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.RuntimeException: Unable to wrap SSLEngine of type sun.security.ssl.SSLEngineImpl
	at io.netty.handler.ssl.JdkAlpnApplicationProtocolNegotiator$AlpnWrapper.wrapSslEngine(JdkAlpnApplicationProtocolNegotiator.java:144)
	at io.netty.handler.ssl.JdkSslContext.configureAndWrapEngine(JdkSslContext.java:251)
	at io.netty.handler.ssl.JdkSslContext.newEngine(JdkSslContext.java:221)
	at io.netty.handler.ssl.SslContext.newHandler(SslContext.java:913)
	at io.netty.handler.ssl.SslContext.newHandler(SslContext.java:905)
	at reactor.netty.tcp.SslProvider$SslSupportConsumer.accept(SslProvider.java:537)
	at reactor.netty.tcp.SslProvider$SslSupportConsumer.accept(SslProvider.java:505)
	at reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler.initChannel(BootstrapHandlers.java:470)
	at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:113)
	at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:105)
	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:637)
	at io.netty.channel.DefaultChannelPipeline.access$000(DefaultChannelPipeline.java:46)
	at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1487)
	at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1161)
	at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:686)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:510)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:423)
	at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:482)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:465)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at java.lang.Thread.run(Thread.java:748)

HTTP 1.1 with SSL, with tcnative/boringSSL dependency

When I do add the tcnative dependency to the classpath and try using SSL+HTTP1.1, it's still failing with the following:

/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/bin/java -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx1024m -Didea.test.cyclic.buffer.size=1048576 "-javaagent:/Users/bclozel/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/182.3569.1/IntelliJ IDEA 2018.2 EAP.app/Contents/lib/idea_rt.jar=51100:/Users/bclozel/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/182.3569.1/IntelliJ IDEA 2018.2 EAP.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Users/bclozel/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/182.3569.1/IntelliJ IDEA 2018.2 EAP.app/Contents/lib/idea_rt.jar:/Users/bclozel/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/182.3569.1/IntelliJ IDEA 2018.2 EAP.app/Contents/plugins/junit/lib/junit-rt.jar:/Users/bclozel/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/182.3569.1/IntelliJ IDEA 2018.2 EAP.app/Contents/plugins/junit/lib/junit5-rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/tools.jar:/Users/bclozel/workspace/spring-boot/spring-boot-project/spring-boot/target/test-classes:/Users/bclozel/workspace/spring-boot/spring-boot-project/spring-boot/target/classes:/Users/bclozel/.m2/repository/org/springframework/spring-core/5.1.0.BUILD-SNAPSHOT/spring-core-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-jcl/5.1.0.BUILD-SNAPSHOT/spring-jcl-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-context/5.1.0.BUILD-SNAPSHOT/spring-context-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-aop/5.1.0.BUILD-SNAPSHOT/spring-aop-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-beans/5.1.0.BUILD-SNAPSHOT/spring-beans-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-expression/5.1.0.BUILD-SNAPSHOT/spring-expression-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/bclozel/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/bclozel/.m2/repository/com/atomikos/transactions-jdbc/4.0.6/transactions-jdbc-4.0.6.jar:/Users/bclozel/.m2/repository/com/atomikos/transactions-jms/4.0.6/transactions-jms-4.0.6.jar:/Users/bclozel/.m2/repository/com/atomikos/transactions-jta/4.0.6/transactions-jta-4.0.6.jar:/Users/bclozel/.m2/repository/com/atomikos/transactions-api/4.0.6/transactions-api-4.0.6.jar:/Users/bclozel/.m2/repository/com/atomikos/transactions/4.0.6/transactions-4.0.6.jar:/Users/bclozel/.m2/repository/com/atomikos/atomikos-util/4.0.6/atomikos-util-4.0.6.jar:/Users/bclozel/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.6/jackson-databind-2.9.6.jar:/Users/bclozel/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/Users/bclozel/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.6/jackson-core-2.9.6.jar:/Users/bclozel/.m2/repository/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar:/Users/bclozel/.m2/repository/com/samskivert/jmustache/1.14/jmustache-1.14.jar:/Users/bclozel/.m2/repository/com/sendgrid/sendgrid-java/4.2.1/sendgrid-java-4.2.1.jar:/Users/bclozel/.m2/repository/com/sendgrid/java-http-client/4.1.0/java-http-client-4.1.0.jar:/Users/bclozel/.m2/repository/com/zaxxer/HikariCP/3.2.0/HikariCP-3.2.0.jar:/Users/bclozel/.m2/repository/io/projectreactor/netty/reactor-netty/0.8.0.BUILD-SNAPSHOT/reactor-netty-0.8.0.BUILD-20180706.232936-21.jar:/Users/bclozel/.m2/repository/io/netty/netty-codec-http/4.1.25.Final/netty-codec-http-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-codec/4.1.25.Final/netty-codec-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-codec-http2/4.1.25.Final/netty-codec-http2-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-handler/4.1.25.Final/netty-handler-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-buffer/4.1.25.Final/netty-buffer-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-transport/4.1.25.Final/netty-transport-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-resolver/4.1.25.Final/netty-resolver-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-handler-proxy/4.1.25.Final/netty-handler-proxy-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-codec-socks/4.1.25.Final/netty-codec-socks-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-transport-native-epoll/4.1.25.Final/netty-transport-native-epoll-4.1.25.Final-linux-x86_64.jar:/Users/bclozel/.m2/repository/io/netty/netty-common/4.1.25.Final/netty-common-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.25.Final/netty-transport-native-unix-common-4.1.25.Final.jar:/Users/bclozel/.m2/repository/io/projectreactor/reactor-core/3.2.0.BUILD-SNAPSHOT/reactor-core-3.2.0.BUILD-20180702.100051-85.jar:/Users/bclozel/.m2/repository/org/reactivestreams/reactive-streams/1.0.2/reactive-streams-1.0.2.jar:/Users/bclozel/.m2/repository/io/netty/netty-tcnative-boringssl-static/2.0.8.Final/netty-tcnative-boringssl-static-2.0.8.Final.jar:/Users/bclozel/.m2/repository/io/undertow/undertow-servlet/2.0.9.Final/undertow-servlet-2.0.9.Final.jar:/Users/bclozel/.m2/repository/io/undertow/undertow-core/2.0.9.Final/undertow-core-2.0.9.Final.jar:/Users/bclozel/.m2/repository/org/jboss/xnio/xnio-api/3.3.8.Final/xnio-api-3.3.8.Final.jar:/Users/bclozel/.m2/repository/org/jboss/xnio/xnio-nio/3.3.8.Final/xnio-nio-3.3.8.Final.jar:/Users/bclozel/.m2/repository/org/jboss/spec/javax/servlet/jboss-servlet-api_4.0_spec/1.0.0.Final/jboss-servlet-api_4.0_spec-1.0.0.Final.jar:/Users/bclozel/.m2/repository/org/jboss/spec/javax/annotation/jboss-annotations-api_1.2_spec/1.0.2.Final/jboss-annotations-api_1.2_spec-1.0.2.Final.jar:/Users/bclozel/.m2/repository/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar:/Users/bclozel/.m2/repository/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar:/Users/bclozel/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/bclozel/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/bclozel/.m2/repository/org/apache/commons/commons-dbcp2/2.4.0/commons-dbcp2-2.4.0.jar:/Users/bclozel/.m2/repository/org/apache/commons/commons-pool2/2.5.0/commons-pool2-2.5.0.jar:/Users/bclozel/.m2/repository/org/apache/httpcomponents/httpclient/4.5.5/httpclient-4.5.5.jar:/Users/bclozel/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar:/Users/bclozel/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/bclozel/.m2/repository/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.jar:/Users/bclozel/.m2/repository/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.10/tomcat-embed-core-9.0.10.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/tomcat-annotations-api/9.0.10/tomcat-annotations-api-9.0.10.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-jasper/9.0.10/tomcat-embed-jasper-9.0.10.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.10/tomcat-embed-el-9.0.10.jar:/Users/bclozel/.m2/repository/org/eclipse/jdt/ecj/3.13.102/ecj-3.13.102.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/tomcat-jdbc/9.0.10/tomcat-jdbc-9.0.10.jar:/Users/bclozel/.m2/repository/org/apache/tomcat/tomcat-juli/9.0.10/tomcat-juli-9.0.10.jar:/Users/bclozel/.m2/repository/org/assertj/assertj-core/3.10.0/assertj-core-3.10.0.jar:/Users/bclozel/.m2/repository/org/codehaus/btm/btm/2.1.4/btm-2.1.4.jar:/Users/bclozel/.m2/repository/javax/transaction/jta/1.1/jta-1.1.jar:/Users/bclozel/.m2/repository/org/codehaus/groovy/groovy/2.5.0/groovy-2.5.0.jar:/Users/bclozel/.m2/repository/org/codehaus/groovy/groovy-xml/2.5.0/groovy-xml-2.5.0.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-servlets/9.4.11.v20180605/jetty-servlets-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-continuation/9.4.11.v20180605/jetty-continuation-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-http/9.4.11.v20180605/jetty-http-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-io/9.4.11.v20180605/jetty-io-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-util/9.4.11.v20180605/jetty-util-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-webapp/9.4.11.v20180605/jetty-webapp-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-xml/9.4.11.v20180605/jetty-xml-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-servlet/9.4.11.v20180605/jetty-servlet-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-security/9.4.11.v20180605/jetty-security-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-alpn-conscrypt-server/9.4.11.v20180605/jetty-alpn-conscrypt-server-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/conscrypt/conscrypt-openjdk-uber/1.0.0.RC11/conscrypt-openjdk-uber-1.0.0.RC11.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-alpn-server/9.4.11.v20180605/jetty-alpn-server-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/http2/http2-server/9.4.11.v20180605/http2-server-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/http2/http2-common/9.4.11.v20180605/http2-common-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/http2/http2-hpack/9.4.11.v20180605/http2-hpack-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/eclipse/jetty/jetty-server/9.4.11.v20180605/jetty-server-9.4.11.v20180605.jar:/Users/bclozel/.m2/repository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar:/Users/bclozel/.m2/repository/org/hibernate/hibernate-core/5.3.1.Final/hibernate-core-5.3.1.Final.jar:/Users/bclozel/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/bclozel/.m2/repository/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2.jar:/Users/bclozel/.m2/repository/org/javassist/javassist/3.22.0-GA/javassist-3.22.0-GA.jar:/Users/bclozel/.m2/repository/net/bytebuddy/byte-buddy/1.8.12/byte-buddy-1.8.12.jar:/Users/bclozel/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/Users/bclozel/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.1.1.Final/jboss-transaction-api_1.2_spec-1.1.1.Final.jar:/Users/bclozel/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar:/Users/bclozel/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/Users/bclozel/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar:/Users/bclozel/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.3.Final/hibernate-commons-annotations-5.0.3.Final.jar:/Users/bclozel/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.10.Final/hibernate-validator-6.0.10.Final.jar:/Users/bclozel/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/Users/bclozel/.m2/repository/org/jboss/jboss-transaction-spi/7.6.0.Final/jboss-transaction-spi-7.6.0.Final.jar:/Users/bclozel/.m2/repository/org/jboss/spec/javax/resource/jboss-connector-api_1.7_spec/1.0.0.Final/jboss-connector-api_1.7_spec-1.0.0.Final.jar:/Users/bclozel/.m2/repository/org/jboss/narayana/jta/jdbc/5.8.2.Final/jdbc-5.8.2.Final.jar:/Users/bclozel/.m2/repository/org/jboss/narayana/jta/jms/5.8.2.Final/jms-5.8.2.Final.jar:/Users/bclozel/.m2/repository/org/jboss/narayana/jta/jta/5.8.2.Final/jta-5.8.2.Final.jar:/Users/bclozel/.m2/repository/org/jboss/narayana/common/5.8.2.Final/common-5.8.2.Final.jar:/Users/bclozel/.m2/repository/org/jboss/narayana/arjunacore/arjuna/5.8.2.Final/arjuna-5.8.2.Final.jar:/Users/bclozel/.m2/repository/org/jboss/narayana/jts/narayana-jts-integration/5.8.2.Final/narayana-jts-integration-5.8.2.Final.jar:/Users/bclozel/.m2/repository/org/liquibase/liquibase-core/3.6.1/liquibase-core-3.6.1.jar:/Users/bclozel/.m2/repository/org/neo4j/neo4j-ogm-core/3.1.0/neo4j-ogm-core-3.1.0.jar:/Users/bclozel/.m2/repository/org/neo4j/neo4j-ogm-api/3.1.0/neo4j-ogm-api-3.1.0.jar:/Users/bclozel/.m2/repository/org/apache/commons/commons-lang3/3.7/commons-lang3-3.7.jar:/Users/bclozel/.m2/repository/io/github/lukehutch/fast-classpath-scanner/2.7.4/fast-classpath-scanner-2.7.4.jar:/Users/bclozel/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar:/Users/bclozel/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/bclozel/.m2/repository/org/springframework/spring-orm/5.1.0.BUILD-SNAPSHOT/spring-orm-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-jdbc/5.1.0.BUILD-SNAPSHOT/spring-jdbc-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-tx/5.1.0.BUILD-SNAPSHOT/spring-tx-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-oxm/5.1.0.BUILD-SNAPSHOT/spring-oxm-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-test/5.1.0.BUILD-SNAPSHOT/spring-test-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-web/5.1.0.BUILD-SNAPSHOT/spring-web-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-webflux/5.1.0.BUILD-SNAPSHOT/spring-webflux-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/spring-webmvc/5.1.0.BUILD-SNAPSHOT/spring-webmvc-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/security/spring-security-web/5.1.0.M1/spring-security-web-5.1.0.M1.jar:/Users/bclozel/.m2/repository/org/springframework/security/spring-security-core/5.1.0.M1/spring-security-core-5.1.0.M1.jar:/Users/bclozel/.m2/repository/org/springframework/ws/spring-ws-core/3.0.1.RELEASE/spring-ws-core-3.0.1.RELEASE.jar:/Users/bclozel/.m2/repository/org/springframework/ws/spring-xml/3.0.1.RELEASE/spring-xml-3.0.1.RELEASE.jar:/Users/bclozel/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/Users/bclozel/.m2/repository/org/yaml/snakeyaml/1.21/snakeyaml-1.21.jar:/Users/bclozel/.m2/repository/org/jetbrains/kotlin/kotlin-reflect/1.2.51/kotlin-reflect-1.2.51.jar:/Users/bclozel/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.2.51/kotlin-stdlib-1.2.51.jar:/Users/bclozel/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.51/kotlin-stdlib-common-1.2.51.jar:/Users/bclozel/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/Users/bclozel/workspace/spring-boot/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/target/classes:/Users/bclozel/workspace/spring-boot/spring-boot-project/spring-boot-tools/spring-boot-test-support/target/classes:/Users/bclozel/.m2/repository/org/apache/maven/maven-aether-provider/3.2.1/maven-aether-provider-3.2.1.jar:/Users/bclozel/.m2/repository/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1.jar:/Users/bclozel/.m2/repository/org/apache/maven/maven-model-builder/3.2.1/maven-model-builder-3.2.1.jar:/Users/bclozel/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19.jar:/Users/bclozel/.m2/repository/org/apache/maven/maven-repository-metadata/3.2.1/maven-repository-metadata-3.2.1.jar:/Users/bclozel/.m2/repository/org/eclipse/aether/aether-util/1.0.2.v20150114/aether-util-1.0.2.v20150114.jar:/Users/bclozel/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar:/Users/bclozel/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar:/Users/bclozel/.m2/repository/org/eclipse/aether/aether-api/1.0.2.v20150114/aether-api-1.0.2.v20150114.jar:/Users/bclozel/.m2/repository/org/eclipse/aether/aether-connector-basic/1.0.2.v20150114/aether-connector-basic-1.0.2.v20150114.jar:/Users/bclozel/.m2/repository/org/eclipse/aether/aether-impl/1.0.2.v20150114/aether-impl-1.0.2.v20150114.jar:/Users/bclozel/.m2/repository/org/eclipse/aether/aether-spi/1.0.2.v20150114/aether-spi-1.0.2.v20150114.jar:/Users/bclozel/.m2/repository/org/eclipse/aether/aether-transport-http/1.0.2.v20150114/aether-transport-http-1.0.2.v20150114.jar:/Users/bclozel/.m2/repository/com/datastax/cassandra/cassandra-driver-core/3.5.1/cassandra-driver-core-3.5.1.jar:/Users/bclozel/.m2/repository/com/google/guava/guava/19.0/guava-19.0.jar:/Users/bclozel/.m2/repository/io/dropwizard/metrics/metrics-core/3.2.6/metrics-core-3.2.6.jar:/Users/bclozel/.m2/repository/com/github/jnr/jnr-ffi/2.1.7/jnr-ffi-2.1.7.jar:/Users/bclozel/.m2/repository/com/github/jnr/jffi/1.2.16/jffi-1.2.16.jar:/Users/bclozel/.m2/repository/com/github/jnr/jffi/1.2.16/jffi-1.2.16-native.jar:/Users/bclozel/.m2/repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar:/Users/bclozel/.m2/repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.jar:/Users/bclozel/.m2/repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar:/Users/bclozel/.m2/repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar:/Users/bclozel/.m2/repository/org/ow2/asm/asm-util/5.0.3/asm-util-5.0.3.jar:/Users/bclozel/.m2/repository/com/github/jnr/jnr-x86asm/1.0.2/jnr-x86asm-1.0.2.jar:/Users/bclozel/.m2/repository/com/github/jnr/jnr-posix/3.0.44/jnr-posix-3.0.44.jar:/Users/bclozel/.m2/repository/com/github/jnr/jnr-constants/0.9.9/jnr-constants-0.9.9.jar:/Users/bclozel/.m2/repository/org/testcontainers/testcontainers/1.7.2/testcontainers-1.7.2.jar:/Users/bclozel/.m2/repository/org/slf4j/slf4j-ext/1.7.25/slf4j-ext-1.7.25.jar:/Users/bclozel/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Users/bclozel/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Users/bclozel/.m2/repository/org/apache/commons/commons-compress/1.14/commons-compress-1.14.jar:/Users/bclozel/.m2/repository/org/rnorth/duct-tape/duct-tape/1.0.7/duct-tape-1.0.7.jar:/Users/bclozel/.m2/repository/org/rnorth/visible-assertions/visible-assertions/2.1.0/visible-assertions-2.1.0.jar:/Users/bclozel/.m2/repository/net/java/dev/jna/jna/4.5.1/jna-4.5.1.jar:/Users/bclozel/.m2/repository/com/google/appengine/appengine-api-1.0-sdk/1.9.64/appengine-api-1.0-sdk-1.9.64.jar:/Users/bclozel/.m2/repository/com/h2database/h2/1.4.197/h2-1.4.197.jar:/Users/bclozel/.m2/repository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/Users/bclozel/.m2/repository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/Users/bclozel/.m2/repository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/Users/bclozel/.m2/repository/com/microsoft/sqlserver/mssql-jdbc/6.4.0.jre8/mssql-jdbc-6.4.0.jre8.jar:/Users/bclozel/.m2/repository/com/squareup/okhttp/okhttp/2.7.5/okhttp-2.7.5.jar:/Users/bclozel/.m2/repository/com/squareup/okio/okio/1.6.0/okio-1.6.0.jar:/Users/bclozel/.m2/repository/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0.jar:/Users/bclozel/.m2/repository/com/sun/xml/messaging/saaj/saaj-impl/1.4.0/saaj-impl-1.4.0.jar:/Users/bclozel/.m2/repository/javax/xml/soap/javax.xml.soap-api/1.4.0/javax.xml.soap-api-1.4.0.jar:/Users/bclozel/.m2/repository/org/jvnet/mimepull/mimepull/1.9.7/mimepull-1.9.7.jar:/Users/bclozel/.m2/repository/org/jvnet/staxex/stax-ex/1.7.8/stax-ex-1.7.8.jar:/Users/bclozel/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/bclozel/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/bclozel/.m2/repository/io/projectreactor/reactor-test/3.2.0.BUILD-SNAPSHOT/reactor-test-3.2.0.BUILD-20180702.100051-85.jar:/Users/bclozel/.m2/repository/javax/xml/ws/jaxws-api/2.3.0/jaxws-api-2.3.0.jar:/Users/bclozel/.m2/repository/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar:/Users/bclozel/.m2/repository/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar:/Users/bclozel/.m2/repository/com/google/protobuf/protobuf-java/2.6.0/protobuf-java-2.6.0.jar:/Users/bclozel/.m2/repository/net/sourceforge/jtds/jtds/1.3.1/jtds-1.3.1.jar:/Users/bclozel/.m2/repository/org/apache/derby/derby/10.14.2.0/derby-10.14.2.0.jar:/Users/bclozel/.m2/repository/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3.jar:/Users/bclozel/.m2/repository/org/apache/httpcomponents/httpcore-nio/4.4.10/httpcore-nio-4.4.10.jar:/Users/bclozel/.m2/repository/org/firebirdsql/jdbc/jaybird-jdk18/3.0.4/jaybird-jdk18-3.0.4.jar:/Users/bclozel/.m2/repository/javax/resource/connector-api/1.5/connector-api-1.5.jar:/Users/bclozel/.m2/repository/org/antlr/antlr4-runtime/4.7/antlr4-runtime-4.7.jar:/Users/bclozel/.m2/repository/org/hsqldb/hsqldb/2.4.1/hsqldb-2.4.1.jar:/Users/bclozel/.m2/repository/org/mariadb/jdbc/mariadb-java-client/2.2.5/mariadb-java-client-2.2.5.jar:/Users/bclozel/.m2/repository/org/mockito/mockito-core/2.19.0/mockito-core-2.19.0.jar:/Users/bclozel/.m2/repository/net/bytebuddy/byte-buddy-agent/1.8.12/byte-buddy-agent-1.8.12.jar:/Users/bclozel/.m2/repository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/Users/bclozel/.m2/repository/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.jar:/Users/bclozel/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar:/Users/bclozel/.m2/repository/org/springframework/spring-context-support/5.1.0.BUILD-SNAPSHOT/spring-context-support-5.1.0.BUILD-20180708.121145-240.jar:/Users/bclozel/.m2/repository/org/springframework/data/spring-data-redis/2.1.0.M3/spring-data-redis-2.1.0.M3.jar:/Users/bclozel/.m2/repository/org/springframework/data/spring-data-keyvalue/2.1.0.M3/spring-data-keyvalue-2.1.0.M3.jar:/Users/bclozel/.m2/repository/org/springframework/data/spring-data-commons/2.1.0.M3/spring-data-commons-2.1.0.M3.jar:/Users/bclozel/.m2/repository/org/xerial/sqlite-jdbc/3.23.1/sqlite-jdbc-3.23.1.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 org.springframework.boot.web.embedded.netty.NettyTests,testNettySsl
11:39:59.009 [main] DEBUG io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
11:39:59.063 [main] DEBUG io.netty.util.internal.PlatformDependent - Platform: MacOS
11:39:59.066 [main] DEBUG io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
11:39:59.068 [main] DEBUG io.netty.util.internal.PlatformDependent0 - Java version: 8
11:39:59.070 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
11:39:59.070 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
11:39:59.071 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
11:39:59.072 [main] DEBUG io.netty.util.internal.PlatformDependent0 - direct buffer constructor: available
11:39:59.074 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
11:39:59.074 [main] DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable prior to Java9
11:39:59.074 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): available
11:39:59.074 [main] DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
11:39:59.075 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/72/f_r9mz9x2fg9cnvfb548pqbh0000gn/T (java.io.tmpdir)
11:39:59.075 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
11:39:59.077 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
11:39:59.077 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: 954728448 bytes
11:39:59.077 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
11:39:59.078 [main] DEBUG io.netty.util.internal.CleanerJava6 - java.nio.ByteBuffer.cleaner(): available
11:39:59.336 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
11:39:59.336 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
11:39:59.352 [main] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.bytebuf.checkAccessible: true
11:39:59.354 [main] DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@64729b1e
11:39:59.374 [main] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
11:39:59.374 [main] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 9
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 9
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 11
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 16777216
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.tinyCacheSize: 512
11:39:59.378 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
11:39:59.381 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
11:39:59.382 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
11:39:59.382 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
11:39:59.382 [main] DEBUG io.netty.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: true
11:39:59.391 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
11:39:59.392 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
11:39:59.392 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
11:39:59.442 [main] DEBUG reactor.util.Loggers$LoggerFactory - Using Slf4j logging framework
11:39:59.452 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
11:39:59.452 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
11:39:59.454 [main] DEBUG io.netty.util.NetUtil - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1%lo0)
11:39:59.455 [main] DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file /proc/sys/net/core/somaxconn. Default: 128
11:39:59.530 [main] DEBUG io.netty.util.internal.NativeLibraryLoader - -Dio.netty.native.workdir: /var/folders/72/f_r9mz9x2fg9cnvfb548pqbh0000gn/T (io.netty.tmpdir)
11:39:59.533 [main] DEBUG io.netty.util.internal.NativeLibraryLoader - Unable to load the library 'netty_tcnative_osx_x86_64', trying other loading mechanism.
java.lang.UnsatisfiedLinkError: no netty_tcnative_osx_x86_64 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1122)
	at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:263)
	at java.security.AccessController.doPrivileged(Native Method)
	at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:255)
	at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:233)
	at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:124)
	at io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:85)
	at io.netty.handler.ssl.OpenSsl.loadTcNative(OpenSsl.java:430)
	at io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:97)
	at io.netty.handler.ssl.SslContext.defaultProvider(SslContext.java:118)
	at io.netty.handler.ssl.SslContext.defaultClientProvider(SslContext.java:114)
	at io.netty.handler.ssl.SslContext.newClientContextInternal(SslContext.java:763)
	at io.netty.handler.ssl.SslContextBuilder.build(SslContextBuilder.java:446)
	at reactor.netty.tcp.SslProvider.<init>(SslProvider.java:309)
	at reactor.netty.tcp.SslProvider$Build.build(SslProvider.java:473)
	at reactor.netty.tcp.SslProvider.<clinit>(SslProvider.java:627)
	at reactor.netty.tcp.TcpServerSecure.<init>(TcpServerSecure.java:36)
	at reactor.netty.tcp.TcpServer.secure(TcpServer.java:477)
	at reactor.netty.http.server.HttpServerSecure.tcpConfiguration(HttpServerSecure.java:49)
	at reactor.netty.http.server.HttpServerTcpConfig.tcpConfiguration(HttpServerTcpConfig.java:39)
	at reactor.netty.http.server.HttpServerHandle.tcpConfiguration(HttpServerHandle.java:51)
	at reactor.netty.http.server.HttpServerTcpConfig.tcpConfiguration(HttpServerTcpConfig.java:39)
	at reactor.netty.http.server.HttpServer.bind(HttpServer.java:92)
	at reactor.netty.http.server.HttpServer.bindNow(HttpServer.java:119)
	at reactor.netty.http.server.HttpServer.bindNow(HttpServer.java:103)
	at org.springframework.boot.web.embedded.netty.NettyTests.testNettySsl(NettyTests.java:48)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
11:39:59.535 [main] DEBUG io.netty.util.internal.NativeLibraryLoader - netty_tcnative_osx_x86_64 cannot be loaded from java.libary.path, now trying export to -Dio.netty.native.workdir: /var/folders/72/f_r9mz9x2fg9cnvfb548pqbh0000gn/T
java.lang.UnsatisfiedLinkError: no netty_tcnative_osx_x86_64 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1122)
	at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
	at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:243)
	at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:124)
	at io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:85)
	at io.netty.handler.ssl.OpenSsl.loadTcNative(OpenSsl.java:430)
	at io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:97)
	at io.netty.handler.ssl.SslContext.defaultProvider(SslContext.java:118)
	at io.netty.handler.ssl.SslContext.defaultClientProvider(SslContext.java:114)
	at io.netty.handler.ssl.SslContext.newClientContextInternal(SslContext.java:763)
	at io.netty.handler.ssl.SslContextBuilder.build(SslContextBuilder.java:446)
	at reactor.netty.tcp.SslProvider.<init>(SslProvider.java:309)
	at reactor.netty.tcp.SslProvider$Build.build(SslProvider.java:473)
	at reactor.netty.tcp.SslProvider.<clinit>(SslProvider.java:627)
	at reactor.netty.tcp.TcpServerSecure.<init>(TcpServerSecure.java:36)
	at reactor.netty.tcp.TcpServer.secure(TcpServer.java:477)
	at reactor.netty.http.server.HttpServerSecure.tcpConfiguration(HttpServerSecure.java:49)
	at reactor.netty.http.server.HttpServerTcpConfig.tcpConfiguration(HttpServerTcpConfig.java:39)
	at reactor.netty.http.server.HttpServerHandle.tcpConfiguration(HttpServerHandle.java:51)
	at reactor.netty.http.server.HttpServerTcpConfig.tcpConfiguration(HttpServerTcpConfig.java:39)
	at reactor.netty.http.server.HttpServer.bind(HttpServer.java:92)
	at reactor.netty.http.server.HttpServer.bindNow(HttpServer.java:119)
	at reactor.netty.http.server.HttpServer.bindNow(HttpServer.java:103)
	at org.springframework.boot.web.embedded.netty.NettyTests.testNettySsl(NettyTests.java:48)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
	Suppressed: java.lang.UnsatisfiedLinkError: no netty_tcnative_osx_x86_64 in java.library.path
		at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
		at java.lang.Runtime.loadLibrary0(Runtime.java:870)
		at java.lang.System.loadLibrary(System.java:1122)
		at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:263)
		at java.security.AccessController.doPrivileged(Native Method)
		at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:255)
		at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:233)
		... 43 common frames omitted
11:39:59.579 [main] DEBUG io.netty.util.internal.NativeLibraryLoader - Successfully loaded the library /var/folders/72/f_r9mz9x2fg9cnvfb548pqbh0000gn/T/libnetty_tcnative_osx_x86_644275184090276120991.dylib
11:39:59.580 [main] DEBUG io.netty.handler.ssl.OpenSsl - netty-tcnative using native library: BoringSSL
11:39:59.699 [main] DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@77e4c80f
11:39:59.708 [main] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
11:39:59.709 [main] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
11:39:59.709 [main] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
11:39:59.709 [main] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
11:39:59.734 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 => ECDHE-ECDSA-AES128-GCM-SHA256
11:39:59.734 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 => ECDHE-ECDSA-AES128-GCM-SHA256
11:39:59.734 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 => ECDHE-RSA-AES128-GCM-SHA256
11:39:59.734 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256 => ECDHE-RSA-AES128-GCM-SHA256
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 => ECDHE-ECDSA-AES256-GCM-SHA384
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 => ECDHE-ECDSA-AES256-GCM-SHA384
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 => ECDHE-RSA-AES256-GCM-SHA384
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384 => ECDHE-RSA-AES256-GCM-SHA384
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 => ECDHE-ECDSA-CHACHA20-POLY1305
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 => ECDHE-ECDSA-CHACHA20-POLY1305
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 => ECDHE-RSA-CHACHA20-POLY1305
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 => ECDHE-RSA-CHACHA20-POLY1305
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 => ECDHE-PSK-CHACHA20-POLY1305
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 => ECDHE-PSK-CHACHA20-POLY1305
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA => ECDHE-ECDSA-AES128-SHA
11:39:59.735 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_AES_128_CBC_SHA => ECDHE-ECDSA-AES128-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 => ECDHE-ECDSA-AES128-SHA256
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 => ECDHE-ECDSA-AES128-SHA256
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA => ECDHE-RSA-AES128-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_AES_128_CBC_SHA => ECDHE-RSA-AES128-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 => ECDHE-RSA-AES128-SHA256
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_AES_128_CBC_SHA256 => ECDHE-RSA-AES128-SHA256
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA => ECDHE-PSK-AES128-CBC-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_PSK_WITH_AES_128_CBC_SHA => ECDHE-PSK-AES128-CBC-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA => ECDHE-ECDSA-AES256-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_AES_256_CBC_SHA => ECDHE-ECDSA-AES256-SHA
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 => ECDHE-ECDSA-AES256-SHA384
11:39:59.736 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 => ECDHE-ECDSA-AES256-SHA384
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA => ECDHE-RSA-AES256-SHA
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_AES_256_CBC_SHA => ECDHE-RSA-AES256-SHA
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 => ECDHE-RSA-AES256-SHA384
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_RSA_WITH_AES_256_CBC_SHA384 => ECDHE-RSA-AES256-SHA384
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA => ECDHE-PSK-AES256-CBC-SHA
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_ECDHE_PSK_WITH_AES_256_CBC_SHA => ECDHE-PSK-AES256-CBC-SHA
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_AES_128_GCM_SHA256 => AES128-GCM-SHA256
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_AES_128_GCM_SHA256 => AES128-GCM-SHA256
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_AES_256_GCM_SHA384 => AES256-GCM-SHA384
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_AES_256_GCM_SHA384 => AES256-GCM-SHA384
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_AES_128_CBC_SHA => AES128-SHA
11:39:59.737 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_AES_128_CBC_SHA => AES128-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_AES_128_CBC_SHA256 => AES128-SHA256
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_AES_128_CBC_SHA256 => AES128-SHA256
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_PSK_WITH_AES_128_CBC_SHA => PSK-AES128-CBC-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_PSK_WITH_AES_128_CBC_SHA => PSK-AES128-CBC-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_AES_256_CBC_SHA => AES256-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_AES_256_CBC_SHA => AES256-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_AES_256_CBC_SHA256 => AES256-SHA256
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_AES_256_CBC_SHA256 => AES256-SHA256
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_PSK_WITH_AES_256_CBC_SHA => PSK-AES256-CBC-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_PSK_WITH_AES_256_CBC_SHA => PSK-AES256-CBC-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: TLS_RSA_WITH_3DES_EDE_CBC_SHA => DES-CBC3-SHA
11:39:59.738 [main] DEBUG io.netty.handler.ssl.CipherSuiteConverter - Cipher suite mapping: SSL_RSA_WITH_3DES_EDE_CBC_SHA => DES-CBC3-SHA
11:39:59.739 [main] DEBUG io.netty.handler.ssl.OpenSsl - Supported protocols (OpenSSL): [[SSLv2Hello, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2]] 
11:39:59.739 [main] DEBUG io.netty.handler.ssl.OpenSsl - Default cipher suites (OpenSSL): [TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA]
11:40:00.058 [main] DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 16
11:40:00.121 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
11:40:00.121 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
11:40:00.132 [main] DEBUG io.netty.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
11:40:00.170 [main] DEBUG reactor.netty.resources.DefaultLoopEpoll - Default Epoll support : false
11:40:00.171 [main] DEBUG reactor.netty.resources.DefaultLoopKQueue - Default KQueue support : false
11:40:00.250 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 2447 (auto-detected)
11:40:00.253 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: 70:88:6b:ff:fe:81:a5:85 (auto-detected)
11:40:00.340 [reactor-http-nio-1] DEBUG reactor.netty.tcp.TcpServer - [id: 0x0b70fa1e, L:/0:0:0:0:0:0:0:1:8080] Bound new server
11:40:06.143 [reactor-http-nio-2] DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@65258e75
11:40:06.147 [reactor-http-nio-2] DEBUG reactor.netty.tcp.SslProvider - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] SSL enabled using engine OpenSslEngine
11:40:06.188 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] New http connection, requesting read
11:40:06.190 [reactor-http-nio-2] DEBUG reactor.netty.channel.BootstrapHandlers - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Initialized pipeline DefaultChannelPipeline{(reactor.left.sslHandler = io.netty.handler.ssl.SslHandler), (reactor.left.loggingHandler = io.netty.handler.logging.LoggingHandler), (reactor.left.sslReader = reactor.netty.tcp.SslProvider$SslReadHandler), (BootstrapHandlers$BootstrapInitializerHandler#0 = reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler), (reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
11:40:06.191 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] REGISTERED
11:40:06.191 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] ACTIVE
11:40:06.201 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] READ COMPLETE
11:40:06.207 [reactor-http-nio-2] DEBUG io.netty.handler.ssl.SslHandler - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] HANDSHAKEN: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
11:40:06.208 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] USER_EVENT: SslHandshakeCompletionEvent(SUCCESS)
11:40:06.209 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] READ COMPLETE
11:40:06.210 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] READ: 103B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 50 52 49 20 2a 20 48 54 54 50 2f 32 2e 30 0d 0a |PRI * HTTP/2.0..|
|00000010| 0d 0a 53 4d 0d 0a 0d 0a 00 00 12 04 00 00 00 00 |..SM............|
|00000020| 00 00 03 00 00 00 64 00 04 40 00 00 00 00 02 00 |......d..@......|
|00000030| 00 00 00 00 00 04 08 00 00 00 00 00 3f ff 00 01 |............?...|
|00000040| 00 00 1e 01 05 00 00 00 01 82 84 87 41 8a a0 e4 |............A...|
|00000050| 1d 13 9d 09 b8 f0 1e 07 7a 88 25 b6 50 c3 ab b6 |........z.%.P...|
|00000060| d2 e0 53 03 2a 2f 2a                            |..S.*/*         |
+--------+-------------------------------------------------+----------------+
11:40:06.217 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Increasing pending responses, now 1
11:40:06.275 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Handler is being applied: org.springframework.boot.web.embedded.netty.NettyTests$$Lambda$9/306206744@5262c787
11:40:06.280 [reactor-http-nio-2] DEBUG reactor.netty.channel.ChannelOperationsHandler - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Writing object DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
transfer-encoding: chunked
11:40:06.285 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] WRITE: 47B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d |HTTP/1.1 200 OK.|
|00000010| 0a 74 72 61 6e 73 66 65 72 2d 65 6e 63 6f 64 69 |.transfer-encodi|
|00000020| 6e 67 3a 20 63 68 75 6e 6b 65 64 0d 0a 0d 0a    |ng: chunked.... |
+--------+-------------------------------------------------+----------------+
11:40:06.286 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] FLUSH
11:40:06.287 [reactor-http-nio-2] DEBUG reactor.netty.channel.ChannelOperationsHandler - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Writing object MonoCallable
11:40:06.289 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] WRITE: 3B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 35 0d 0a                                        |5..             |
+--------+-------------------------------------------------+----------------+
11:40:06.289 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] WRITE: 5B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 48 65 6c 6c 6f                                  |Hello           |
+--------+-------------------------------------------------+----------------+
11:40:06.289 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] WRITE: 2B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 0d 0a                                           |..              |
+--------+-------------------------------------------------+----------------+
11:40:06.289 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] FLUSH
11:40:06.289 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Last HTTP response frame
11:40:06.289 [reactor-http-nio-2] DEBUG reactor.netty.channel.ChannelOperationsHandler - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Writing object EmptyLastHttpContent
11:40:06.290 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] WRITE: 5B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 30 0d 0a 0d 0a                                  |0....           |
+--------+-------------------------------------------------+----------------+
11:40:06.290 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] Decreasing pending responses, now 0
11:40:06.290 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:51104] FLUSH
11:40:06.292 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] Failed flushing last frame
java.io.IOException: Broken pipe
	at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
	at sun.nio.ch.IOUtil.write(IOUtil.java:51)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
	at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:403)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:934)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:360)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:901)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1396)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768)
	at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749)
	at io.netty.handler.ssl.SslHandler.forceFlush(SslHandler.java:1776)
	at io.netty.handler.ssl.SslHandler.wrapAndFlush(SslHandler.java:775)
	at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:752)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768)
	at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749)
	at io.netty.handler.logging.LoggingHandler.flush(LoggingHandler.java:265)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768)
	at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.flush(CombinedChannelDuplexHandler.java:533)
	at io.netty.channel.ChannelOutboundHandlerAdapter.flush(ChannelOutboundHandlerAdapter.java:115)
	at io.netty.channel.CombinedChannelDuplexHandler.flush(CombinedChannelDuplexHandler.java:358)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768)
	at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749)
	at io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:117)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768)
	at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749)
	at reactor.netty.channel.ChannelOperationsHandler.doWrite(ChannelOperationsHandler.java:282)
	at reactor.netty.channel.ChannelOperationsHandler.drain(ChannelOperationsHandler.java:457)
	at reactor.netty.channel.ChannelOperationsHandler.flush(ChannelOperationsHandler.java:194)
	at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:802)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814)
	at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794)
	at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1066)
	at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:305)
	at reactor.netty.FutureMono$DeferredWriteMono.subscribe(FutureMono.java:315)
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153)
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)
	at reactor.core.publisher.Mono.subscribe(Mono.java:3543)
	at reactor.netty.NettyOutbound.subscribe(NettyOutbound.java:306)
	at reactor.core.publisher.MonoSource.subscribe(MonoSource.java:51)
	at reactor.netty.http.server.HttpServerHandle.onStateChange(HttpServerHandle.java:64)
	at reactor.netty.tcp.TcpServerBind$ChildObserver.onStateChange(TcpServerBind.java:187)
	at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:420)
	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:141)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:149)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1407)
	at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1189)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1223)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:647)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at java.lang.Thread.run(Thread.java:748)
11:40:06.293 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] Dropped HTTP content, since response has been sent already: EmptyLastHttpContent
11:40:06.293 [reactor-http-nio-2] DEBUG reactor.netty.channel.ChannelOperationsHandler - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] No ChannelOperation attached. Dropping: 
11:40:06.294 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServerOperations - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] Decoding failed: DefaultFullHttpRequest(decodeResult: failure(java.lang.IllegalArgumentException: text is empty (possibly HTTP/0.9)), version: HTTP/1.0, content: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 0, cap: 0))
GET /bad-request HTTP/1.0 : 
java.lang.IllegalArgumentException: text is empty (possibly HTTP/0.9)
	at io.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:63)
	at io.netty.handler.codec.http.HttpRequestDecoder.createMessage(HttpRequestDecoder.java:87)
	at io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:219)
	at io.netty.handler.codec.http.HttpServerCodec$HttpServerRequestDecoder.decode(HttpServerCodec.java:101)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1407)
	at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1189)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1223)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:647)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at java.lang.Thread.run(Thread.java:748)
11:40:06.295 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] WRITE: 66B
         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 48 54 54 50 2f 31 2e 30 20 34 30 30 20 42 61 64 |HTTP/1.0 400 Bad|
|00000010| 20 52 65 71 75 65 73 74 0d 0a 63 6f 6e 74 65 6e | Request..conten|
|00000020| 74 2d 6c 65 6e 67 74 68 3a 20 30 0d 0a 63 6f 6e |t-length: 0..con|
|00000030| 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f 73 65 0d 0a |nection: close..|
|00000040| 0d 0a                                           |..              |
+--------+-------------------------------------------------+----------------+
11:40:06.295 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] FLUSH
11:40:06.295 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] CLOSE
11:40:06.295 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] READ COMPLETE
11:40:06.296 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] USER_EVENT: SslCloseCompletionEvent(java.nio.channels.ClosedChannelException)
11:40:06.296 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] INACTIVE
11:40:06.296 [reactor-http-nio-2] DEBUG reactor.netty.http.server.HttpServer - [id: 0x97d27aac, L:/0:0:0:0:0:0:0:1:8080 ! R:/0:0:0:0:0:0:0:1:51104] UNREGISTERED

On the client side, it seems client and server are trying to use H2 anyway:

curl --insecure https://localhost:8080/ -vvv
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8080 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=example.com
*  start date: Jul  9 09:39:59 2017 GMT
*  expire date: Dec 31 23:59:59 9999 GMT
*  issuer: CN=example.com
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7fc398804400)
> GET / HTTP/2
> Host: localhost:8080
> User-Agent: curl/7.54.0
> Accept: */*
>
* http2 error: Remote peer returned unexpected data while we expected SETTINGS frame.  Perhaps, peer does not support HTTP/2 properly.
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, Client hello (1):
curl: (16) Error in the HTTP2 framing layer

HTTP 1.1 with SSL, no tcnative/boringSSL dependency, fixed

If I then override completely the default configuration, this works:

SelfSignedCertificate cert = new SelfSignedCertificate();
		SslContextBuilder serverOptions = SslContextBuilder.forServer(cert.certificate(), cert.privateKey());

		DisposableServer server =
				HttpServer.create()
						.protocol(HttpProtocol.HTTP11)
						.secure(ssl -> ssl.sslContext(serverOptions).defaultConfiguration(SslProvider.DefaultConfigurationType.NONE))
						.port(8080)
						.handle((req, res) -> res.sendString(Mono.just("Hello")))
						.wiretap()
						.bindNow();

		new CountDownLatch(1).await();
		server.disposeNow();
@bclozel
Copy link
Member Author

bclozel commented Jul 20, 2018

Thanks @violetagg ! I’ll try this fix and get back to you shortly.

@bclozel
Copy link
Member Author

bclozel commented Jul 20, 2018

Works for me! Thanks!

@violetagg violetagg mentioned this issue Jul 26, 2018
24 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug A general bug
Projects
None yet
Development

No branches or pull requests

2 participants