Skip to Main Content

Java HotSpot Virtual Machine

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How does Java file I/O move files?

843829Jan 21 2005 — edited Jan 21 2005
I'm working support for an integration platform, and there's a problem at a customer that seems to crop up once in a blue moon, yet still all to often. Its a bit difficult to track down, because they are using an old piece of software that is not officially supported anymore, but the problem still needs to be solved and I could use some help to either confirm or dismiss my suspicion of what might be the cause of it.

What happens is this....

Their system places a file in a folder, and the file is /supposedly/ fully created, and then just moved to the folder. Then an adapter program takes the file, puts it on a messaging queue, and after that is successful, it moves the file into a backup directory.

Now, what has happened is that sometimes, the files that end up being sent are incomplete. Either the writing application messed up, or the adapter somehow went crazy. But more puzzling is that I've observed that the files have been correctly sent, but the file that ended up in the backup-directory was empty. It is not possible to send an empty file through the platform, since there's transformation logic that handles it. Those parts I completely trust, but I need to verify if it might indeed be the adapter, or the customer's own systems that messes up the message.

So the question really boils down to, how does the java file-I/O method for moving a file work? Does it copy it bitwise, or does it call the system's move-command? Because if it copies it bitwise, it might mean it reads the data at the exact moment the file is created but not yet filled, and then doesn't check again as it writes it to the storage, and then just deletes the file. If it calls the system's move command, the system wouldn't be able to move a file that is being written, and something else is more likely the problem.

The machine is a windows 2000 server, sp4, and the java being used is jdk1.3.1_03.

Rewriting the adapter is not an option, and it will hopefully be replaced in the near future (as in, within a year...) whenever the customer deems it can budget for the work. The adapter is not officially supported by us, but the platform is, and I need to pin-point the problem.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 18 2005
Added on Jan 21 2005
5 comments
321 views