From 07caa2926243efadb99f75c4be0d3537fe28f387 Mon Sep 17 00:00:00 2001 From: crschnick Date: Mon, 20 May 2024 10:31:29 +0000 Subject: [PATCH] Improve file transfer resilience --- app/src/main/java/io/xpipe/app/util/FileBridge.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/xpipe/app/util/FileBridge.java b/app/src/main/java/io/xpipe/app/util/FileBridge.java index cad72323b..689e0a9f4 100644 --- a/app/src/main/java/io/xpipe/app/util/FileBridge.java +++ b/app/src/main/java/io/xpipe/app/util/FileBridge.java @@ -95,8 +95,15 @@ public class FileBridge { if (e.hasChanged()) { event("Registering change for file " + TEMP.relativize(e.file) + " for editor entry " + e.getName()); e.registerChange(); + var expectedSize = Files.size(e.file); try (var in = Files.newInputStream(e.file)) { - e.writer.accept(in, (long) in.available()); + var actualSize = (long) in.available(); + if (expectedSize != actualSize) { + event("Expected file size " + expectedSize + " but got size " + actualSize + ". Ignoring change ..."); + return; + } + + e.writer.accept(in, actualSize); } } } catch (Exception ex) {