Skip to content

Commit ced3b2a

Browse files
committed
jetty: remove usage of deprecated method
1 parent 993782b commit ced3b2a

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

modules/jooby-jetty/src/main/java/io/jooby/internal/jetty/JettyContext.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.List;
3131
import java.util.Map;
3232
import java.util.Optional;
33+
import java.util.concurrent.CompletableFuture;
3334
import java.util.concurrent.Executor;
3435

3536
import org.eclipse.jetty.http.*;
@@ -44,6 +45,7 @@
4445
import org.eclipse.jetty.util.BufferUtil;
4546
import org.eclipse.jetty.util.Callback;
4647
import org.eclipse.jetty.util.Fields;
48+
import org.eclipse.jetty.util.Promise;
4749
import org.eclipse.jetty.websocket.server.ServerWebSocketContainer;
4850
import org.slf4j.Logger;
4951

@@ -231,8 +233,26 @@ public Formdata form() {
231233
parser.setMaxMemoryFileSize(bufferSize);
232234
parser.setMaxLength(maxRequestSize);
233235
// Convert the request content into parts.
234-
var parts = parser.parse(request).get();
235-
for (var part : parts) {
236+
var futureParts = new CompletableFuture<MultiPartFormData.Parts>();
237+
var formCallback =
238+
new Promise.Invocable<MultiPartFormData.Parts>() {
239+
@Override
240+
public void succeeded(MultiPartFormData.Parts result) {
241+
futureParts.complete(result);
242+
}
243+
244+
@Override
245+
public void failed(Throwable x) {
246+
futureParts.completeExceptionally(x);
247+
}
248+
249+
@Override
250+
public InvocationType getInvocationType() {
251+
return InvocationType.NON_BLOCKING;
252+
}
253+
};
254+
parser.parse(request, formCallback);
255+
for (var part : futureParts.get()) {
236256
if (part.getFileName() != null) {
237257
String name = part.getName();
238258
formdata.put(name, register(new JettyFileUpload(router.getTmpdir(), part)));

0 commit comments

Comments
 (0)