in commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/DefaultFileMonitor.java [116:165]
private void check() {
refresh();
try {
// If the file existed and now doesn't
if (exists && !fileObject.exists()) {
exists = fileObject.exists();
timestamp = -1;
// Fire delete event
((AbstractFileSystem) fileObject.getFileSystem()).fireFileDeleted(fileObject);
// Remove listener in case file is re-created. Don't want to fire twice.
if (defaultFileMonitor.getFileListener() != null) {
fileObject.getFileSystem().removeListener(fileObject, defaultFileMonitor.getFileListener());
}
// Remove from map
defaultFileMonitor.queueRemoveFile(fileObject);
} else if (exists && fileObject.exists()) {
// Check the timestamp to see if it has been modified
if (timestamp != fileObject.getContent().getLastModifiedTime()) {
timestamp = fileObject.getContent().getLastModifiedTime();
// Fire change event
// Don't fire if it's a folder because new file children
// and deleted files in a folder have their own event triggered.
if (!fileObject.getType().hasChildren()) {
((AbstractFileSystem) fileObject.getFileSystem()).fireFileChanged(fileObject);
}
}
} else if (!exists && fileObject.exists()) {
exists = fileObject.exists();
timestamp = fileObject.getContent().getLastModifiedTime();
// Don't fire if it's a folder because new file children
// and deleted files in a folder have their own event triggered.
if (!fileObject.getType().hasChildren()) {
((AbstractFileSystem) fileObject.getFileSystem()).fireFileCreated(fileObject);
}
}
checkForNewChildren();
} catch (final FileSystemException fse) {
LOG.error(fse.getLocalizedMessage(), fse);
}
}