SWAT-engineering / SWAT-engineering/java-watch
`IndexingRescanner` doesn't generate `DELETED` events for content items of moved/renamed directories
オープン
まだ誰も着手していません。
bug
- 主要言語
- Java
- スター
- 1
- フォーク
- 0
- 平均マージ
- 14時間 40分
- マージ済み PR(30日)
- 1
説明
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]
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
Issue の Java reproduction で検証されている IndexingRescanner の動作から始め、ディレクトリ移動の処理と overflow diff の処理に焦点を当てます。recursive watch で移動を再現し、既存のディレクトリイベントに加えて file1.txt と file2.txt に対する DELETED イベントが発行されることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- operating-systems
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100