[ https://issues.apache.org/jira/browse/IO-523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16123104#comment-16123104 ]
Sebb commented on IO-523: ------------------------- The behaviour needs to be optional to account for the case where the file has been rewritten to the same size. > Do not reload the entire file when a tailed file's length and position are > the same but the file is newer > --------------------------------------------------------------------------------------------------------- > > Key: IO-523 > URL: https://issues.apache.org/jira/browse/IO-523 > Project: Commons IO > Issue Type: Improvement > Components: Streams/Writers > Affects Versions: 2.5 > Environment: Windows 10 > Reporter: Tyler Murry > Priority: Minor > Attachments: IO-523.patch > > Original Estimate: 24h > Remaining Estimate: 24h > > In the Tailer class, when the file length is equal to the position and the > file is newer, the following branch is executed: > {code:title=org.apache.commons.io.input.Tailer.java} > // ----------- Lines 461 - 472 -------------- > // ... > else if (newer) { > /* > * This can happen if the file is truncated or overwritten with the exact > same length of > * information. In cases like this, the file position needs to be reset > */ > position = 0; > reader.seek(position); // cannot be null here > // Now we can read new lines > position = readLines(reader); > last = file.lastModified(); > } > // ... > {code} > The comments in the branch specifically mention wanting to reset the position > and reload the entire file. However, I believe this can lead to undesirable > effects in certain cases. > One example is when you are tailing one file into another file. If this > branch is hit, the entire input file is recopied into the output file. This > is especially troublesome if you have a rouge file who's timestamp changes > regularly without any content changes. > My improvement would be to simply remove this branch if it works for the > general case as well. Or, at least for special cases, allow a parameter to be > checked to prevent this behavior. -- This message was sent by Atlassian JIRA (v6.4.14#64029)