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