mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
attempt to fix consistency issue bug which caused synced note_contents to have NULL content when original is empty string
This commit is contained in:
parent
9359f05335
commit
21575d862b
@ -66,7 +66,11 @@ eventService.subscribe(eventService.ENTITY_CREATED, ({ entityName, entity }) =>
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
note.setContent(targetNote.getContent());
|
const targetNoteContent = targetNote.getContent();
|
||||||
|
|
||||||
|
if (targetNoteContent) {
|
||||||
|
note.setContent(targetNoteContent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (entity.type === 'label' && entity.name === 'sorted') {
|
else if (entity.type === 'label' && entity.name === 'sorted') {
|
||||||
treeService.sortNotesAlphabetically(entity.noteId);
|
treeService.sortNotesAlphabetically(entity.noteId);
|
||||||
|
@ -99,8 +99,15 @@ function updateNoteContent(remoteEntity, sourceId) {
|
|||||||
const localEntity = sql.getRow("SELECT * FROM note_contents WHERE noteId = ?", [remoteEntity.noteId]);
|
const localEntity = sql.getRow("SELECT * FROM note_contents WHERE noteId = ?", [remoteEntity.noteId]);
|
||||||
|
|
||||||
if (shouldWeUpdateEntity(localEntity, remoteEntity)) {
|
if (shouldWeUpdateEntity(localEntity, remoteEntity)) {
|
||||||
|
// we always use Buffer object which is different from normal saving - there we use simple string type for "string notes"
|
||||||
|
// the problem is that in general it's not possible to whether a note_content is string note or note (syncs can arrive out of order)
|
||||||
remoteEntity.content = remoteEntity.content === null ? null : Buffer.from(remoteEntity.content, 'base64');
|
remoteEntity.content = remoteEntity.content === null ? null : Buffer.from(remoteEntity.content, 'base64');
|
||||||
|
|
||||||
|
if (remoteEntity.content && remoteEntity.content.byteLength === 0) {
|
||||||
|
// there seems to be a bug which causes empty buffer to be stored as NULL which is then picked up as inconsistency
|
||||||
|
remoteEntity.content = "";
|
||||||
|
}
|
||||||
|
|
||||||
sql.transactional(() => {
|
sql.transactional(() => {
|
||||||
sql.replace("note_contents", remoteEntity);
|
sql.replace("note_contents", remoteEntity);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user