Details
Description
I haven't seen any problems as a result of this, but the code that closes and deletes the old temporary file in LOBStreamControl.replaceBytes() looks wrong to me.
When replaceBytes() is called on a lob that has been materialized into a temporary file, it will create a new file and copy the relevant parts from the old file. But the old file is only closed and deleted if the block that is replaced ends before the last byte of the lob. I believe that the old file should be closed and deleted also when we replace a block that ends at or after the last byte of the original lob.