Dbrant has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/169962

Change subject: Handle network-related exceptions when doing a POST.
......................................................................

Handle network-related exceptions when doing a POST.

Change-Id: I6abb3c7348c2c4241c9d3a26c738873157295097
---
M src/main/java/org/mediawiki/api/json/Api.java
M src/main/java/org/mediawiki/api/json/RequestBuilder.java
2 files changed, 13 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/java-mwapi 
refs/changes/62/169962/1

diff --git a/src/main/java/org/mediawiki/api/json/Api.java 
b/src/main/java/org/mediawiki/api/json/Api.java
index f6ae3be..e9d9df9 100644
--- a/src/main/java/org/mediawiki/api/json/Api.java
+++ b/src/main/java/org/mediawiki/api/json/Api.java
@@ -171,7 +171,7 @@
      * @param requestBuilder The requestBuilder to use to construct the request
      * @return An {@link ApiResult} object which can be used to get the result 
of this query.
      */
-    public ApiResult setupRequest(final int method, final RequestBuilder 
requestBuilder) {
+    public ApiResult setupRequest(final int method, final RequestBuilder 
requestBuilder) throws ApiException {
         HttpRequest request;
         switch(method) {
             case METHOD_GET:
@@ -189,7 +189,15 @@
             request = request.headers(customHeaders);
         }
         if (method == METHOD_POST) {
-            request.form(requestBuilder.getParams());
+            // catch network-related exceptions, since the form() function 
performs a
+            // network request.
+            try {
+                request.form(requestBuilder.getParams());
+            } catch (HttpRequest.HttpRequestException e) {
+                throw new ApiException(e.getCause());
+            } catch (SecurityException e) {
+                throw new ApiException(e);
+            }
         }
         return new ApiResult(this, request);
     }
diff --git a/src/main/java/org/mediawiki/api/json/RequestBuilder.java 
b/src/main/java/org/mediawiki/api/json/RequestBuilder.java
index 8fff333..56d993c 100644
--- a/src/main/java/org/mediawiki/api/json/RequestBuilder.java
+++ b/src/main/java/org/mediawiki/api/json/RequestBuilder.java
@@ -58,7 +58,7 @@
      * @param method HTTP Method to use when performing the request
      * @return An {@link ApiResult} object which can be used to get the result 
of this query.
      */
-    private ApiResult setupRequest(final int method) {
+    private ApiResult setupRequest(final int method) throws ApiException {
         return api.setupRequest(method, this);
     }
 
@@ -69,7 +69,7 @@
      *
      * @return An {@link ApiResult} object which can be used to get the result 
of this query.
      */
-    public ApiResult get() {
+    public ApiResult get() throws ApiException {
         return setupRequest(Api.METHOD_GET);
     }
 
@@ -81,7 +81,7 @@
      *
      * @return An {@link ApiResult} object which can be used to get the result 
of this query.
      */
-    public ApiResult post() {
+    public ApiResult post() throws ApiException {
         return setupRequest(Api.METHOD_POST);
     }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/169962
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6abb3c7348c2c4241c9d3a26c738873157295097
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/java-mwapi
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to