From 2bbafa032515edf34c4bfbc078be747514882a6a Mon Sep 17 00:00:00 2001 From: Mikhail Bobrutskov Date: Mon, 9 Oct 2023 12:29:02 +0200 Subject: [PATCH] minor fixes --- src/main/java/com/wizzardo/http/AbstractHttpServer.java | 5 ----- src/main/java/com/wizzardo/http/FallbackServerSocket.java | 5 +++++ src/main/java/com/wizzardo/http/HttpWorker.java | 8 +++++--- .../http/framework/parameters/ParametersHelper.java | 7 +++++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/wizzardo/http/AbstractHttpServer.java b/src/main/java/com/wizzardo/http/AbstractHttpServer.java index d64fc3f..451b513 100644 --- a/src/main/java/com/wizzardo/http/AbstractHttpServer.java +++ b/src/main/java/com/wizzardo/http/AbstractHttpServer.java @@ -61,11 +61,6 @@ protected IOThread createIOThread(int number, int divider) { }; } else { server = new FallbackServerSocket(host, port, this) { - @Override - public void onRead(T connection, ByteBufferProvider bufferProvider) throws IOException { - process(connection, bufferProvider); - } - @Override protected SelectorConnectionWrapper createConnection(SocketChannel client) throws IOException { SelectorConnectionWrapper connection = super.createConnection(client); diff --git a/src/main/java/com/wizzardo/http/FallbackServerSocket.java b/src/main/java/com/wizzardo/http/FallbackServerSocket.java index e6a355d..1d65a2f 100644 --- a/src/main/java/com/wizzardo/http/FallbackServerSocket.java +++ b/src/main/java/com/wizzardo/http/FallbackServerSocket.java @@ -308,6 +308,10 @@ public void close() { IOTools.close(data); IOTools.close(channel); + try { + onDisconnect(ByteBufferProvider.current()); + } catch (IOException ignored) { + } } @Override @@ -420,6 +424,7 @@ protected SelectorConnectionWrapper createConnection(SocketChannel client) throw } public void onRead(T connection, ByteBufferProvider bufferProvider) throws IOException { + connection.onRead(bufferProvider); } @Override diff --git a/src/main/java/com/wizzardo/http/HttpWorker.java b/src/main/java/com/wizzardo/http/HttpWorker.java index fd558e2..1754c62 100644 --- a/src/main/java/com/wizzardo/http/HttpWorker.java +++ b/src/main/java/com/wizzardo/http/HttpWorker.java @@ -20,8 +20,10 @@ protected void process(T connection) throws IOException { if (!connection.processingBy.compareAndSet(null, this)) return; - connection.process(this); - - connection.processingBy.set(null); + try { + connection.process(this); + } finally { + connection.processingBy.set(null); + } } } diff --git a/src/main/java/com/wizzardo/http/framework/parameters/ParametersHelper.java b/src/main/java/com/wizzardo/http/framework/parameters/ParametersHelper.java index 6d92178..b3a54f1 100644 --- a/src/main/java/com/wizzardo/http/framework/parameters/ParametersHelper.java +++ b/src/main/java/com/wizzardo/http/framework/parameters/ParametersHelper.java @@ -382,8 +382,11 @@ protected static Mapper createPojoMapper(Class type, String par if (request.isMultipart()) { MultiPartEntry entry = request.entry(parameterName); - if (entry != null && entry.contentType().toLowerCase().startsWith(Header.VALUE_APPLICATION_JSON.value)) { - return JsonTools.parse(entry.asBytes(), type); + if (entry != null) { + String entryContentType = entry.contentType(); + if (entryContentType != null && entryContentType.toLowerCase().startsWith(Header.VALUE_APPLICATION_JSON.value)) { + return JsonTools.parse(entry.asBytes(), type); + } } }