Tom Cunningham created JBESB-3879:
-------------------------------------
Summary: Handle a failed file rename better in FileUtils.move
Key: JBESB-3879
URL:
https://issues.jboss.org/browse/JBESB-3879
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Adapters
Affects Versions: 4.11
Reporter: Tom Cunningham
Assignee: Tom Cunningham
Fix For: 4.11 CP2
when a file that is locked by another process is picked up by the SOA platform, and the
rename fails, we get a error logg eventhough the file is processed successfully on the
next attempt (when the lock is gone).
----
2012-05-31 08:43:56,694 DEBUG [org.jboss.soa.esb.util.FileUtil]
(ESBScheduler:AnalytixImport.esb_Worker-0) Unable to perform local rename of file
'c:\ipl\itg_kemlabsvar\inbox\D5V843AV.xml' to
'c:\ipl\itg_kemlabsvar\inbox\9f5d7a61-a564-483a-bea6-054331c640d0.D5V843AV.xml.9f5d7a61-a564-483a-bea6-054331c640d0'.
Unable to move file.
2012-05-31 08:43:56,695 ERROR [org.jboss.soa.esb.listeners.gateway.AbstractFileGateway]
(ESBScheduler:AnalytixImport.esb_Worker-0) Composer
<org.jboss.soa.esb.listeners.gateway.LocalFileMessageComposer> Failed.
org.jboss.soa.esb.listeners.message.MessageDeliverException: Invalid File payload. File
'c:\ipl\itg_kemlabsvar\inbox\D5V843AV.xml.lck' doesn't exist.
----
The call chain here seems to be
1) AbstractFileGateway.onSchedule()
2) AbstractFileGateway.setFileWorking(fileIn);
3) FileGatewayListener.renameFile(from,to);
4) FileUtil.renameTo(from, to)
The problem is that FileUtil.renameTo(..) returns true even if it fails to rename the file
(in the step where it renames a localfile to a filename that includes the UUID).
This in turn makes setFileWorking(..) return a non-null value and AbstractFileGateway will
go ahead and try to process the non-existing file.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira