Index: src/test/java/org/apache/jackrabbit/core/ReadWhileSaveTest.java
===================================================================
--- src/test/java/org/apache/jackrabbit/core/ReadWhileSaveTest.java	(revision 549105)
+++ src/test/java/org/apache/jackrabbit/core/ReadWhileSaveTest.java	(working copy)
@@ -16,31 +16,32 @@
  */
 package org.apache.jackrabbit.core;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.BufferedOutputStream;
 import java.io.OutputStream;
-import java.io.FileOutputStream;
-import java.io.FileInputStream;
-import java.io.BufferedInputStream;
-import java.io.FileNotFoundException;
+import java.util.Date;
 import java.util.Random;
 
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
+import org.apache.jackrabbit.test.AbstractJCRTest;
+
 /**
  * <code>ReadWhileSaveTest</code> reads nodes using a new session each time
  * while a large binary is written to the workspace.
  */
 public class ReadWhileSaveTest extends AbstractJCRTest {
 
+    private long numReads = 0;
+
     public void testReadWhileSave() throws RepositoryException, IOException {
         Thread t = runExpensiveSave();
-        long numReads = 0;
         while (t.isAlive()) {
             Session s = helper.getSuperuserSession();
             try {
@@ -63,25 +64,27 @@
     private Thread runExpensiveSave() throws RepositoryException, IOException {
         // create a temp file with 10 mb random data
         final File tmp = File.createTempFile("garbage", null);
-        OutputStream out = new BufferedOutputStream(new FileOutputStream(tmp));
+        OutputStream out = new FileOutputStream(tmp);
         Random rand = new Random();
         byte[] randomKb = new byte[1024];
-        for (int i = 0; i < 1024 * 10; i++) {
+        for (int i = 0; i < 300 * 1024; i++) {
             rand.nextBytes(randomKb);
             out.write(randomKb);
         }
         out.close();
         final Session s = helper.getSuperuserSession();
         final Node stuff = s.getRootNode().getNode(testPath).addNode("stuff");
+        s.save();
         Thread t = new Thread(new Runnable() {
             public void run() {
                 try {
-                    for (int i = 0; i < 10; i++) {
-                        stuff.setProperty("binary", new BufferedInputStream(new FileInputStream(tmp)));
-                        s.save();
-                        stuff.getProperty("binary").remove();
-                        s.save();
-                    }
+                    System.out.println(new Date() + " - setProperty() - " + numReads);
+                    stuff.setProperty("binary", new FileInputStream(tmp));
+                    System.out.println(new Date() + " - begin save() - " + numReads);
+                    s.save();
+                    System.out.println(new Date() + " - end save() - " + numReads);
+                    stuff.getProperty("binary").remove();
+                    s.save();
                 } catch (RepositoryException e) {
                     e.printStackTrace();
                 } catch (FileNotFoundException e) {
@@ -95,4 +98,5 @@
         t.start();
         return t;
     }
+
 }
