summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--share/www/script/test/replication.js4
-rw-r--r--src/couchdb/couch_rep.erl10
2 files changed, 10 insertions, 4 deletions
diff --git a/share/www/script/test/replication.js b/share/www/script/test/replication.js
index 5e85847e..25746625 100644
--- a/share/www/script/test/replication.js
+++ b/share/www/script/test/replication.js
@@ -324,14 +324,14 @@ couchTests.replication = function(debug) {
T(continuousResult._local_id);
var cancelResult = CouchDB.replicate(dbA.name, "test_suite_db_b", {
- body: {"cancel": true}
+ body: {"continuous":true, "cancel": true}
});
T(cancelResult.ok);
T(continuousResult._local_id == cancelResult._local_id);
try {
var cancelResult2 = CouchDB.replicate(dbA.name, "test_suite_db_b", {
- body: {"cancel": true}
+ body: {"continuous":true, "cancel": true}
});
} catch (e) {
T(e.error == "not_found");
diff --git a/src/couchdb/couch_rep.erl b/src/couchdb/couch_rep.erl
index fd323f7f..6e4295ea 100644
--- a/src/couchdb/couch_rep.erl
+++ b/src/couchdb/couch_rep.erl
@@ -84,8 +84,14 @@ end_replication({BaseId, Extension}) ->
{error, not_found} = R ->
R;
ok ->
- ok = supervisor:delete_child(couch_rep_sup, RepId),
- {ok, {cancelled, ?l2b(BaseId)}}
+ case supervisor:delete_child(couch_rep_sup, RepId) of
+ ok ->
+ {ok, {cancelled, ?l2b(BaseId)}};
+ {error, not_found} ->
+ {ok, {cancelled, ?l2b(BaseId)}};
+ {error, _} = Error ->
+ Error
+ end
end.
start_replication(RepDoc, {BaseId, Extension}, UserCtx) ->