mirror of
https://github.com/Febbweiss/logstash-forwarder-java.git
synced 2026-03-04 14:15:42 +00:00
Fix bug #8.
This commit is contained in:
@@ -63,20 +63,25 @@ public class FileReader extends Reader {
|
||||
}
|
||||
|
||||
private int readFile(FileState state, int spaceLeftInSpool) {
|
||||
int eventListSizeBefore = eventList.size();
|
||||
File file = state.getFile();
|
||||
long pointer = state.getPointer();
|
||||
if(logger.isTraceEnabled()) {
|
||||
logger.trace("File : " + file + " pointer : " + pointer);
|
||||
logger.trace("Space left in spool : " + spaceLeftInSpool);
|
||||
}
|
||||
if(isCompressedFile(state)) {
|
||||
pointer = file.length();
|
||||
if(state.isDeleted() || state.getRandomAccessFile() == null) { // Don't try to read this file
|
||||
pointerMap.put(file, pointer);
|
||||
return 0;
|
||||
} else {
|
||||
pointer = readLines(state, spaceLeftInSpool);
|
||||
int eventListSizeBefore = eventList.size();
|
||||
if(logger.isTraceEnabled()) {
|
||||
logger.trace("File : " + file + " pointer : " + pointer);
|
||||
logger.trace("Space left in spool : " + spaceLeftInSpool);
|
||||
}
|
||||
if(isCompressedFile(state)) {
|
||||
pointer = file.length();
|
||||
} else {
|
||||
pointer = readLines(state, spaceLeftInSpool);
|
||||
}
|
||||
pointerMap.put(file, pointer);
|
||||
return eventList.size() - eventListSizeBefore; // Return number of events read
|
||||
}
|
||||
pointerMap.put(file, pointer);
|
||||
return eventList.size() - eventListSizeBefore; // Return number of events read
|
||||
}
|
||||
|
||||
private boolean isCompressedFile(FileState state) {
|
||||
|
||||
@@ -64,7 +64,7 @@ public class FileState {
|
||||
private void setFileFromDirectoryAndName() throws FileNotFoundException {
|
||||
file = new File(directory + File.separator + fileName);
|
||||
if(file.exists()) {
|
||||
randomAccessFile = new RandomAccessFile(file, "r");
|
||||
randomAccessFile = null;
|
||||
lastModified = file.lastModified();
|
||||
size = file.length();
|
||||
} else {
|
||||
|
||||
@@ -314,6 +314,9 @@ public class FileWatcher {
|
||||
List<File> markedList = null;
|
||||
for(File file : oldWatchMap.keySet()) {
|
||||
FileState state = oldWatchMap.get(file);
|
||||
if(state.getRandomAccessFile() == null) {
|
||||
state.setDeleted();
|
||||
}
|
||||
if(state.isDeleted()) {
|
||||
if(! file.exists()) {
|
||||
if(markedList == null) {
|
||||
@@ -328,8 +331,7 @@ public class FileWatcher {
|
||||
}
|
||||
if(markedList != null) {
|
||||
for(File file : markedList) {
|
||||
FileState state = oldWatchMap.remove(file);
|
||||
|
||||
oldWatchMap.remove(file);
|
||||
logger.trace("\tFile : " + file + " removed");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user