GH-10162: The full file path for PersistentAcceptOnceFileListFilter
#10420
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #10162
The
AbstractPersistentAcceptOnceFileListFiltermay cause a problem with entries in theMetadataStorewhen the same file name is used from different directories. Let's imagine a scenario when remote directories are created every day with respective timestamp, e.g. today20250828, tomorrow20250829.The files in those directories are based on customer names:
customer1.xml,customer2.xmletc.Since most of the
AbstractPersistentAcceptOnceFileListFilterimplementations do just something like this:return file.getName();that would lead to the same key for theMetadataStoreoperations.SmbPersistentAcceptOnceFileListFilterto useSmbFile.getUncPath()as a notation of the full path fileSftpPersistentAcceptOnceFileListFilterto useSftpClient.DirEntry.getLongFilename()if it is not empty.SftpSession.list()to populated the mentionedlongFileNameinto a newSftpClient.DirEntryinstance based on just fetchedEnhancedFTPFileadapter to delegate to the originalFTPFileand populate an additionallongFileNamepropertyFtpPersistentAcceptOnceFileListFilterto extract itslongFileNameproperty