When camel file component tries to aquire a readLock, e.g. readLock=changed, and a camelLock already exists (aquired by another camel instance), the method MarkerFileExclusiveReadLockStrategy.acquireExclusiveReadLock fails (correct).
Then in GenericFileConsumer.processExchange, row 291 processStrategy.abort is called. That will delete the camelLock which another camel instance owns.
I don't know if abort should call exclusiveReadLockStrategy.releaseExclusiveReadLock() or if we have to remember if we own the lock or not.