I'm working on experimenting with and learning Oracle Streams for a replication project. I'm using the procedure MAINTAIN_TTS within the package DBMS_STREAMS_ADM. Only after I managed to corrupt and recover my test datafile a few times did I manage to figure out that while you must have directory objects created on the location where your source datafile(s) exist, you *must not* use those directories as the SOURCE_DIRECTORY_OBJECT parameter to MAINTAIN_TTS. The procedure makes a local copy of the datafile first and if it is using the datafile directory it apparently attempts to overwrite the source datafile with a copy of itself.
I suggest that the Packages and Types Reference have some additional detail added for the SOURCE_DIRECTORY_OBJECT parameter explaining this behavior.