Commit 868af9b5 authored by Romain Courteaud's avatar Romain Courteaud

Release 3.39.0

parent b6b14699
...@@ -26,7 +26,7 @@ TESTDIR = test ...@@ -26,7 +26,7 @@ TESTDIR = test
EXAMPLEDIR = examples EXAMPLEDIR = examples
EXTERNALDIR = external EXTERNALDIR = external
VERSION = 3.38.1 VERSION = 3.39.0
JIOVERSION = ${DISTDIR}/jio-v${VERSION}.js JIOVERSION = ${DISTDIR}/jio-v${VERSION}.js
JIOLATEST = ${DISTDIR}/jio-latest.js JIOLATEST = ${DISTDIR}/jio-latest.js
JIONODEVERSION = ${DISTDIR}/jio-v${VERSION}-node.js JIONODEVERSION = ${DISTDIR}/jio-v${VERSION}-node.js
......
...@@ -12039,7 +12039,8 @@ var jIO = window.jIO, ...@@ -12039,7 +12039,8 @@ var jIO = window.jIO,
// ie, replication should prevent losing user data // ie, replication should prevent losing user data
// Synchronize attachments before, to ensure // Synchronize attachments before, to ensure
// all of them will be deleted too // all of them will be deleted too
var result; var result,
previous_report_length;
if (context._signature_hash_key !== undefined) { if (context._signature_hash_key !== undefined) {
if (options.conflict) { if (options.conflict) {
report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE : report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE :
...@@ -12053,12 +12054,21 @@ var jIO = window.jIO, ...@@ -12053,12 +12054,21 @@ var jIO = window.jIO,
return context._signature_sub_storage.remove(id); return context._signature_sub_storage.remove(id);
}); });
} else { } else {
previous_report_length = report._list.length;
result = repairDocumentAttachment(context, id, report) result = repairDocumentAttachment(context, id, report)
.push(function () { .push(function () {
return destination.allAttachments(id); var next_report_length = report._list.length,
}) has_error = false,
.push(function (attachment_dict) { i;
if (JSON.stringify(attachment_dict) === "{}") { // Check if there was an error during attachment replication
for (i = previous_report_length; i < next_report_length; i += 1) {
if ((report._list[i][1] === id) &&
(report._list[i][0] < 100)) {
has_error = true;
}
}
if (!has_error) {
// Attachment repication has been correctly resolved
if (options.conflict) { if (options.conflict) {
report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE : report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE :
LOG_FORCE_DELETE_LOCAL); LOG_FORCE_DELETE_LOCAL);
...@@ -12072,8 +12082,7 @@ var jIO = window.jIO, ...@@ -12072,8 +12082,7 @@ var jIO = window.jIO,
}); });
} }
report.log(id, options.from_local ? LOG_UNEXPECTED_REMOTE_ATTACHMENT : report.log(id, options.from_local ? LOG_UNEXPECTED_REMOTE_ATTACHMENT :
LOG_UNEXPECTED_LOCAL_ATTACHMENT, LOG_UNEXPECTED_LOCAL_ATTACHMENT);
JSON.stringify(attachment_dict));
}, function (error) { }, function (error) {
if ((error instanceof jIO.util.jIOError) && if ((error instanceof jIO.util.jIOError) &&
(error.status_code === 404)) { (error.status_code === 404)) {
......
...@@ -10340,7 +10340,8 @@ return new Parser; ...@@ -10340,7 +10340,8 @@ return new Parser;
// ie, replication should prevent losing user data // ie, replication should prevent losing user data
// Synchronize attachments before, to ensure // Synchronize attachments before, to ensure
// all of them will be deleted too // all of them will be deleted too
var result; var result,
previous_report_length;
if (context._signature_hash_key !== undefined) { if (context._signature_hash_key !== undefined) {
if (options.conflict) { if (options.conflict) {
report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE : report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE :
...@@ -10354,12 +10355,21 @@ return new Parser; ...@@ -10354,12 +10355,21 @@ return new Parser;
return context._signature_sub_storage.remove(id); return context._signature_sub_storage.remove(id);
}); });
} else { } else {
previous_report_length = report._list.length;
result = repairDocumentAttachment(context, id, report) result = repairDocumentAttachment(context, id, report)
.push(function () { .push(function () {
return destination.allAttachments(id); var next_report_length = report._list.length,
}) has_error = false,
.push(function (attachment_dict) { i;
if (JSON.stringify(attachment_dict) === "{}") { // Check if there was an error during attachment replication
for (i = previous_report_length; i < next_report_length; i += 1) {
if ((report._list[i][1] === id) &&
(report._list[i][0] < 100)) {
has_error = true;
}
}
if (!has_error) {
// Attachment repication has been correctly resolved
if (options.conflict) { if (options.conflict) {
report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE : report.log(id, options.from_local ? LOG_FORCE_DELETE_REMOTE :
LOG_FORCE_DELETE_LOCAL); LOG_FORCE_DELETE_LOCAL);
...@@ -10373,8 +10383,7 @@ return new Parser; ...@@ -10373,8 +10383,7 @@ return new Parser;
}); });
} }
report.log(id, options.from_local ? LOG_UNEXPECTED_REMOTE_ATTACHMENT : report.log(id, options.from_local ? LOG_UNEXPECTED_REMOTE_ATTACHMENT :
LOG_UNEXPECTED_LOCAL_ATTACHMENT, LOG_UNEXPECTED_LOCAL_ATTACHMENT);
JSON.stringify(attachment_dict));
}, function (error) { }, function (error) {
if ((error instanceof jIO.util.jIOError) && if ((error instanceof jIO.util.jIOError) &&
(error.status_code === 404)) { (error.status_code === 404)) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{ {
"name": "jio", "name": "jio",
"version": "v3.38.1", "version": "v3.39.0",
"license": "GPLv3+", "license": "GPLv3+",
"author": "Nexedi SA", "author": "Nexedi SA",
"contributors": [ "contributors": [
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment