Configure Jackrabbit to use a DbDatastore and a MySQL database to store the content. Now, if do not configure the max_packet_size in MySQL you can only store Blobs that are smaller than 1MB (default). If you now add a Node in Jackrabbit that has a binary property and try to store a Blob larger than 1MB. Jackrabbit gets now a SQLException for the first time it tries to store the binary value. But there is failover mechanism implemented that now tries to persist the bin value for a second time. Now storing the value works because the InputStream has hit its end and there are no bytes left. That results now in an empty binary value that is stored and the client doesn`t get informed about that.
Same problem occurs if you hit the table space limit with an oracle database.