From 3f955eb49b47f74642ca7dfa318662c9a0f7b2e3 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <gua@adhisimon.org>
Date: Fri, 17 Jun 2016 20:11:52 +0700
Subject: [PATCH] try catch

---
 xmlrpc-server.js | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/xmlrpc-server.js b/xmlrpc-server.js
index dbabf95..d9d781c 100644
--- a/xmlrpc-server.js
+++ b/xmlrpc-server.js
@@ -296,6 +296,25 @@ function sendReply(response) {
     });
 }
 
+function errorOnTopUpReport(topUpReportError) {
+    var hasError = false;
+
+    if (!topUpReportError) {
+        return false;
+    }
+
+    try {
+        if (topUpReportError.toString().indexOf('Invalid XML-RPC message') < 0) {
+            return true;
+        }
+    }
+    catch(e) {
+    }
+
+    return false;
+
+}
+
 function sendTopUpReport(reverseUrls, params, urlIdx, retry) {
     if (retry === null || retry === undefined) {
         retry = 1;
@@ -346,14 +365,12 @@ function sendTopUpReport(reverseUrls, params, urlIdx, retry) {
 
     client.methodCall(methodName, [ params ], function (topUpReportError, value) {
 
-        if (topUpReportError) {
-            if (topUpReportError.indexOf('Invalid XML-RPC message') < 0) {
+        if (errorOnTopUpReport(topUpReportError)) {
 
-                logger.warn('Error sending topUpReport retrying another url (if available): ' + topUpReportError, {error: topUpReportError});
-                sendTopUpReport(reverseUrls, params, ++urlIdx, retry);
-                return;
+            logger.warn('Error sending topUpReport retrying another url (if available): ' + topUpReportError, {error: topUpReportError});
+            sendTopUpReport(reverseUrls, params, ++urlIdx, retry);
+            return;
 
-            }
         }
 
         logger.verbose("topUpReport ACK", {value: value});
-- 
1.9.0