Fix crash due to rippled slowDown error

This commit is contained in:
Chris Clark
2015-09-25 16:41:37 -07:00
parent 5f8dcd71a5
commit 84838b2e9f
2 changed files with 12 additions and 8 deletions

View File

@@ -18,7 +18,7 @@ function isImmediateRejection(engineResult) {
function convertSubmitErrors(callback) { function convertSubmitErrors(callback) {
return function(error, data) { return function(error, data) {
if (isImmediateRejection(data.engineResult)) { if (!error && isImmediateRejection(data.engineResult)) {
callback(new utils.common.errors.RippleError('Submit failed'), data); callback(new utils.common.errors.RippleError('Submit failed'), data);
} else { } else {
callback(error, data); callback(error, data);

View File

@@ -227,14 +227,8 @@ Request.prototype.callback = function(callback, successEvent, errorEvent) {
let called = false; let called = false;
function requestSuccess(message) {
if (!called) {
called = true;
callback.call(self, null, message);
}
}
function requestError(error) { function requestError(error) {
self.remote.removeListener('error', requestError);
if (!called) { if (!called) {
called = true; called = true;
@@ -246,8 +240,18 @@ Request.prototype.callback = function(callback, successEvent, errorEvent) {
} }
} }
function requestSuccess(message) {
self.remote.removeListener('error', requestError);
if (!called) {
called = true;
callback.call(self, null, message);
}
}
this.remote.once('error', requestError); // e.g. rate-limiting slowDown error
this.once(this.successEvent, requestSuccess); this.once(this.successEvent, requestSuccess);
this.once(this.errorEvent, requestError); this.once(this.errorEvent, requestError);
if (!this.requested) { if (!this.requested) {
this.request(); this.request();
} }