SWAT-engineering / SWAT-engineering/java-watch
`IndexingRescanner` doesn't generate `DELETED` events for content items of moved/renamed directories
Đang mở
Chưa có ai nhận issue này.
bug
- Ngôn ngữ chính
- Java
- Star
- 1
- Fork
- 0
- Merge trung bình
- 14 giờ 40 phút
- Pull request đã merge (30 ngày)
- 1
Mô tả
To reproduce
// Create file tree
var parent = Files.createTempDirectory("");
var child1 = Files.createDirectories(parent.resolve("from"));
var child2 = Files.createDirectories(parent.resolve("to"));
// Create directory to be moved
var directory = Files.createDirectory(child1.resolve("directory"));
Files.createFile(directory.resolve("file1.txt"));
Files.createFile(directory.resolve("file2.txt"));
// Start a watch for the whole file tree
try (var watch = Watch
.build(parent, WatchScope.PATH_AND_ALL_DESCENDANTS)
.onOverflow(Approximation.DIFF)
.on(System.out::println)
.start()) {
// Move directory
var source = child1.resolve(directory.getFileName());
var target = child2.resolve(directory.getFileName());
Files.move(source, target);
// Wait for events
Thread.sleep(30000);
}
System.exit(0);
Expected output
DELETED events for file1.txt and file2.txt.
Actual output
No such events:
WatchEvent[C:\Users\sung-\AppData\Local\Temp\16629189291729839418, DELETED, from\directory]
WatchEvent[C:\Users\sung-\AppData\Local\Temp\16629189291729839418, CREATED, to\directory]
WatchEvent[C:\Users\sung-\AppData\Local\Temp\16629189291729839418, MODIFIED, to]
WatchEvent[C:\Users\sung-\AppData\Local\Temp\16629189291729839418, OVERFLOW, to\directory]
WatchEvent[C:\Users\sung-\AppData\Local\Temp\16629189291729839418, CREATED, to\directory\file1.txt]
WatchEvent[C:\Users\sung-\AppData\Local\Temp\16629189291729839418, CREATED, to\directory\file2.txt]
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với hành vi của IndexingRescanner được thể hiện qua bản tái hiện bằng Java trong issue, tập trung vào việc xử lý di chuyển thư mục và xử lý diff overflow. Tái hiện thao tác di chuyển bằng một watch đệ quy, sau đó xác minh rằng các sự kiện DELETED được phát ra cho file1.txt và file2.txt, ngoài các sự kiện thư mục hiện có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- operating-systems
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100