Skip to content

Commit 175bf5e

Browse files
committed
Fix exception handler logic to use the fallback recursive directory watch
1 parent a9251f0 commit 175bf5e

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/main/java/engineering/swat/watch/Watcher.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,31 +157,37 @@ public ActiveWatch start() throws IOException {
157157
if (this.eventHandler == EMPTY_HANDLER) {
158158
throw new IllegalStateException("There is no onEvent handler defined");
159159
}
160-
var result = createWatch();
161-
result.start();
162-
return result;
163-
}
164160

165-
private JDKBaseWatch createWatch() {
161+
JDKBaseWatch result;
162+
166163
switch (scope) {
167164
case PATH_AND_CHILDREN: {
168-
return new JDKDirectoryWatch(path, executor, eventHandler, false);
165+
result = new JDKDirectoryWatch(path, executor, eventHandler, false);
166+
result.start();
167+
break;
169168
}
170169
case PATH_AND_ALL_DESCENDANTS: {
171170
try {
172-
return new JDKDirectoryWatch(path, executor, eventHandler, true);
171+
result = new JDKDirectoryWatch(path, executor, eventHandler, true);
172+
result.start();
173173
} catch (Throwable ex) {
174174
// no native support, use the simulation
175175
logger.debug("Not possible to register the native watcher, using fallback for {}", path);
176176
logger.trace(ex);
177-
return new JDKRecursiveDirectoryWatch(path, executor, eventHandler);
177+
result = new JDKRecursiveDirectoryWatch(path, executor, eventHandler);
178+
result.start();
178179
}
180+
break;
179181
}
180182
case PATH_ONLY: {
181-
return new JDKFileWatch(path, executor, eventHandler);
183+
result = new JDKFileWatch(path, executor, eventHandler);
184+
result.start();
185+
break;
182186
}
183187
default:
184188
throw new IllegalStateException("Not supported yet");
185189
}
190+
191+
return result;
186192
}
187193
}

src/main/java/engineering/swat/watch/impl/jdk/JDKRecursiveDirectoryWatch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,6 @@ public void close() throws IOException {
339339
protected boolean runIfFirstTime() throws IOException {
340340
logger.debug("Running recursive watch for: {}", path);
341341
registerInitialWatches(path);
342-
return false;
342+
return true;
343343
}
344344
}

0 commit comments

Comments
 (0)