From f57b404b42814e9c48d37da79a215da856bcc41f Mon Sep 17 00:00:00 2001 From: Gianlu Date: Wed, 27 Feb 2019 13:52:11 +0100 Subject: [PATCH] Close client used for testing --- .../ProfilesManager/Testers/Aria2Tester.java | 28 ++++++++++++------- .../Testers/DirectDownloadTester.java | 3 ++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/Aria2Tester.java b/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/Aria2Tester.java index 950c58fde..178dbf9f4 100644 --- a/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/Aria2Tester.java +++ b/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/Aria2Tester.java @@ -20,13 +20,14 @@ class Aria2Tester extends BaseTester { super(context, profile, listener); } - private void publishError(Exception ex, boolean authenticated) { + private void publishError(@NonNull Exception ex, boolean authenticated) { publishMessage(ex.getClass().getName() + ": " + ex.getMessage(), Level.ERROR); if (authenticated) publishMessage("Your token or username and password may be wrong", Level.ERROR); } - private Object runRequest(AbstractClient.AriaRequestWithResult request, Aria2Helper helper) { + @Nullable + private Object runRequest(@NonNull AbstractClient.AriaRequestWithResult request, @NonNull Aria2Helper helper) { final AtomicReference lock = new AtomicReference<>(null); helper.request(request, new AbstractClient.OnResult() { @Override @@ -58,13 +59,7 @@ public void onException(@NonNull Exception ex) { } @Nullable - public Boolean call(@Nullable Object prevResult) { - AbstractClient client; - if (prevResult instanceof AbstractClient) - client = (AbstractClient) prevResult; - else - throw new IllegalStateException("Previous result should be a client, but was " + prevResult); - + private Boolean call(@NonNull AbstractClient client) { Aria2Helper helper = new Aria2Helper(client); publishMessage("Started unauthenticated request...", Level.INFO); @@ -92,8 +87,21 @@ public Boolean call(@Nullable Object prevResult) { } } + @Nullable + public Boolean call(@Nullable Object prevResult) { + AbstractClient client; + if (prevResult instanceof AbstractClient) + client = (AbstractClient) prevResult; + else + throw new IllegalStateException("Previous result should be a client, but was " + prevResult); + + Boolean result = call(client); + client.close(); + return result; + } + @NonNull - private Object runAuthenticated(Aria2Helper helper) { + private Object runAuthenticated(@NonNull Aria2Helper helper) { publishMessage("Started authenticated request...", Level.INFO); Object result = runRequest(AriaRequests.getVersion(), helper); if (result instanceof Exception) publishError((Exception) result, true); diff --git a/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/DirectDownloadTester.java b/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/DirectDownloadTester.java index fd61b1fe0..d1b2a0e00 100644 --- a/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/DirectDownloadTester.java +++ b/app/src/main/java/com/gianlu/aria2app/ProfilesManager/Testers/DirectDownloadTester.java @@ -52,6 +52,9 @@ public Boolean call(@Nullable Object prevResult) { } catch (IOException | NetUtils.InvalidUrlException ex) { publishError(ex); return null; + } finally { + client.connectionPool().evictAll(); + client.dispatcher().executorService().shutdown(); } }