You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2009/06/10 15:08:53 UTC

svn commit: r783347 - /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/

Author: thomasm
Date: Wed Jun 10 13:08:53 2009
New Revision: 783347

URL: http://svn.apache.org/viewvc?rev=783347&view=rev
Log:
JCR-2134 Data Store: enable data store tests - fix and speed up tests

Modified:
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/CopyValueTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DBDataStoreTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DataStoreTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ExportImportTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCConcurrentTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCEventListenerTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCThread.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/OpenFilesTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/PersistenceManagerIteratorTest.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/RandomInputStream.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/TestTwoGetStreams.java

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/CopyValueTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/CopyValueTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/CopyValueTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/CopyValueTest.java Wed Jun 10 13:08:53 2009
@@ -23,6 +23,7 @@
 
 import javax.jcr.Node;
 import javax.jcr.Property;
+import javax.jcr.ValueFactory;
 
 /**
  * Tests copying binary values from one node to another.
@@ -58,10 +59,11 @@
         Node n = testRoot.addNode("a");
         superuser.save();
         byte[] data = new byte[length + 1];
-        n.setProperty("data", new ByteArrayInputStream(data));
+        ValueFactory vf = superuser.getValueFactory();
+        n.setProperty("data", vf.createBinary(new ByteArrayInputStream(data)));
         superuser.save();
         data = new byte[length];
-        n.setProperty("data", new ByteArrayInputStream(data));
+        n.setProperty("data", vf.createBinary(new ByteArrayInputStream(data)));
         Property p = testRoot.getNode("a").getProperty("data");
         assertEquals(length, p.getLength());
         superuser.getWorkspace().copy("/testCopy/a", "/testCopy/b");
@@ -105,7 +107,8 @@
                         .nextGaussian())));
                 byte[] data = new byte[dataLength];
                 log(node1 + " add len:" + dataLength);
-                n.setProperty("data", new ByteArrayInputStream(data));
+                ValueFactory vf = superuser.getValueFactory();
+                n.setProperty("data", vf.createBinary(new ByteArrayInputStream(data)));
                 n.setProperty("len", dataLength);
                 break;
             }

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DBDataStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DBDataStoreTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DBDataStoreTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DBDataStoreTest.java Wed Jun 10 13:08:53 2009
@@ -28,6 +28,9 @@
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.core.data.db.DbDataStore;
 
+/**
+ * Test the Database Data Store.
+ */
 public class DBDataStoreTest extends TestCase {
 
     private DbDataStore store = new DbDataStore();

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DataStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DataStoreTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DataStoreTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/DataStoreTest.java Wed Jun 10 13:08:53 2009
@@ -138,8 +138,8 @@
     }
     
     private void doTest(DataStore ds, int offset) throws Exception {
-        ArrayList list = new ArrayList();
-        HashMap map = new HashMap();
+        ArrayList<DataRecord> list = new ArrayList<DataRecord>();
+        HashMap<DataRecord, Integer> map = new HashMap<DataRecord, Integer>();
         for (int i = 0; i < 100; i++) {
             int size = 100 + i * 10;
             RandomInputStream in = new RandomInputStream(size + offset, size);
@@ -150,8 +150,8 @@
         Random random = new Random(1);
         for (int i = 0; i < list.size(); i++) {
             int pos = random.nextInt(list.size());
-            DataRecord rec = (DataRecord) list.get(pos);
-            int size = ((Integer) map.get(rec)).intValue();
+            DataRecord rec = list.get(pos);
+            int size = map.get(rec);
             rec = ds.getRecord(rec.getIdentifier());
             assertEquals(size, rec.getLength());
             InputStream in = rec.getStream();

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ExportImportTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ExportImportTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ExportImportTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ExportImportTest.java Wed Jun 10 13:08:53 2009
@@ -28,6 +28,7 @@
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.ValueFactory;
 
 /**
  * Test importing and exporting large binary and text objects.
@@ -68,7 +69,6 @@
             session.save();
             String s = new String(chars);
             test.setProperty("text", s);
-            test.save();
             session.save();
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             session.exportSystemView("/testText", out, false, false);
@@ -120,8 +120,8 @@
             byte[] data = new byte[len];
             Random random = new Random(1);
             random.nextBytes(data);
-            test.setProperty("data", new ByteArrayInputStream(data));
-            test.save();
+            ValueFactory vf = session.getValueFactory();
+            test.setProperty("data", vf.createBinary(new ByteArrayInputStream(data)));
             session.save();
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             session.exportSystemView("/testBinary", out, false, false);
@@ -136,8 +136,8 @@
             test2 = test2.getNode("testBinary");
             test3 = root.getNode("testBinary3");
             test3 = test3.getNode("testBinary");
-            byte[] data2 = readFromStream(test2.getProperty("data").getStream());
-            byte[] data3 = readFromStream(test3.getProperty("data").getStream());
+            byte[] data2 = readFromStream(test2.getProperty("data").getBinary().getStream());
+            byte[] data3 = readFromStream(test3.getProperty("data").getBinary().getStream());
             assertEquals(data.length, data2.length);
             assertEquals(data.length, data3.length);
             for (int i = 0; i < len; i++) {

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCConcurrentTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCConcurrentTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCConcurrentTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCConcurrentTest.java Wed Jun 10 13:08:53 2009
@@ -30,6 +30,7 @@
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.ValueFactory;
 
 /**
  * Test case for concurrent garbage collection
@@ -58,7 +59,8 @@
                 gcThread.start();
             }
             Node n = node(root, "test" + i);
-            n.setProperty("data", randomInputStream(i));
+            ValueFactory vf = session.getValueFactory();
+            n.setProperty("data", vf.createBinary(randomInputStream(i)));
             session.save();
             LOG.debug("saved: " + i);
         }
@@ -66,7 +68,7 @@
         for (int i = 0; i < len; i++) {
             Node n = root.getNode("test" + i);
             Property p = n.getProperty("data");
-            InputStream in = p.getStream();
+            InputStream in = p.getBinary().getStream();
             InputStream expected = randomInputStream(i);
             checkStreams(expected, in);
             n.remove();

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCEventListenerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCEventListenerTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCEventListenerTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCEventListenerTest.java Wed Jun 10 13:08:53 2009
@@ -27,6 +27,7 @@
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.ValueFactory;
 
 /**
  * Test the DataStore garbage collector.
@@ -60,10 +61,11 @@
         Node test = root.addNode(TEST_NODE_NAME);
         Random random = new Random();
         byte[] data = new byte[10000];
-        for (int i = 0; i < 20; i++) {
+        for (int i = 0; i < 10; i++) {
             Node n = test.addNode("x" + i);
             random.nextBytes(data);
-            n.setProperty("data", new ByteArrayInputStream(data));
+            ValueFactory vf = session.getValueFactory();
+            n.setProperty("data", vf.createBinary(new ByteArrayInputStream(data)));
             session.save();
             if (i % 2 == 0) {
                 n.remove();
@@ -92,6 +94,7 @@
             int deleted = gc.deleteUnused();
             LOG.debug("Deleted " + deleted);
             assertTrue("Should delete at least one item", deleted >= 0);
+            gc.close();
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCThread.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCThread.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCThread.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GCThread.java Wed Jun 10 13:08:53 2009
@@ -60,6 +60,7 @@
                 LOG.debug("Waiting...");
                 Thread.sleep(10);
             }
+            gc.close();
         } catch (Exception ex) {
             LOG.error("Error scanning", ex);
             exception = ex;
@@ -75,10 +76,10 @@
     }
 
     private int listIdentifiers(GarbageCollector gc) throws DataStoreException {
-        Iterator it = gc.getDataStore().getAllIdentifiers();
+        Iterator<DataIdentifier> it = gc.getDataStore().getAllIdentifiers();
         int count = 0;
         while (it.hasNext()) {
-            DataIdentifier id = (DataIdentifier) it.next();
+            DataIdentifier id = it.next();
             LOG.debug("  " + id);
             count++;
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java Wed Jun 10 13:08:53 2009
@@ -18,7 +18,6 @@
 
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.SessionImpl;
-import org.apache.jackrabbit.core.state.ItemStateException;
 import org.apache.jackrabbit.test.AbstractJCRTest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,6 +31,7 @@
 import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.ValueFactory;
 
 /**
  * Test cases for data store garbage collection.
@@ -51,16 +51,18 @@
         }
         final SynchronousChannel sync = new SynchronousChannel();
         final Node node = root.addNode("slowBlob");
+        final int blobLength = 1000;
+        final ValueFactory vf = session.getValueFactory();
         new Thread() {
             public void run() {
                 try {
-                    node.setProperty("slowBlob", new InputStream() {
+                    node.setProperty("slowBlob", vf.createBinary(new InputStream() {
                         int pos;
                         public int read() throws IOException {
                             pos++;
-                            if (pos < 10000) {
+                            if (pos < blobLength) {
                                 return pos % 80 == 0 ? '\n' : '.';
-                            } else if (pos == 10000) {
+                            } else if (pos == blobLength) {
                                 try {
                                     sync.put("x");
                                     // deleted
@@ -72,7 +74,7 @@
                             }
                             return -1;
                         }
-                    });
+                    }));
                     node.getSession().save();
                     sync.put("saved");
                 } catch (Exception e) {
@@ -87,13 +89,14 @@
         gc.deleteUnused();
         sync.put("deleted");
         assertEquals("saved", sync.take());
-        InputStream in = node.getProperty("slowBlob").getStream();
-        for (int pos = 1; pos < 10000; pos++) {
+        InputStream in = node.getProperty("slowBlob").getBinary().getStream();
+        for (int pos = 1; pos < blobLength; pos++) {
             int expected = pos % 80 == 0 ? '\n' : '.';
             assertEquals(expected, in.read());
         }
         assertEquals('x', in.read());
         in.close();
+        gc.close();
     }
 
     public void testGC() throws Exception {
@@ -108,23 +111,25 @@
 
         deleteMyNodes();
         runGC(session, true);
-        runGC(session, true);
 
         root.addNode("node1");
         Node node2 = root.addNode("node2");
         Node n = node2.addNode("nodeWithBlob");
-        n.setProperty("test", new RandomInputStream(10, 10000));
+        ValueFactory vf = session.getValueFactory();
+        n.setProperty("test", vf.createBinary(new RandomInputStream(10, 1000)));
         n = node2.addNode("nodeWithTemporaryBlob");
-        n.setProperty("test", new RandomInputStream(11, 10000));
+        n.setProperty("test", vf.createBinary(new RandomInputStream(11, 1000)));
         session.save();
 
         n.remove();
         session.save();
-        Thread.sleep(1000);
-
+        
         GarbageCollector gc = ((SessionImpl)session).createDataStoreGarbageCollector();
-        gc.setScanEventListener(this);
-        gc.setTestDelay(1000);
+
+        if (gc.getDataStore() instanceof FileDataStore) {
+            // make sure the file is old (access time resolution is 2 seconds)
+            Thread.sleep(2000);
+        }
 
         LOG.debug("scanning...");
         gc.scan();
@@ -138,26 +143,32 @@
         assertEquals(count - 1, count2);
 
         deleteMyNodes();
+
+        gc.close();
     }
 
-    private void runGC(Session session, boolean all) throws RepositoryException, IOException, ItemStateException {
+    private void runGC(Session session, boolean all) throws Exception {
         GarbageCollector gc = ((SessionImpl)session).createDataStoreGarbageCollector();
         gc.setScanEventListener(this);
-        gc.setTestDelay(1000);
+        if (gc.getDataStore() instanceof FileDataStore) {
+            // make sure the file is old (access time resolution is 2 seconds)
+            Thread.sleep(2000);
+        }
         gc.scan();
         gc.stopScan();
         if (all) {
             gc.getDataStore().clearInUse();
         }
         gc.deleteUnused();
+        gc.close();
     }
 
     private int listIdentifiers(GarbageCollector gc) throws DataStoreException {
         LOG.debug("identifiers:");
-        Iterator it = gc.getDataStore().getAllIdentifiers();
         int count = 0;
+        Iterator<DataIdentifier> it = gc.getDataStore().getAllIdentifiers();
         while (it.hasNext()) {
-            DataIdentifier id = (DataIdentifier) it.next();
+            DataIdentifier id = it.next();
             LOG.debug("  " + id);
             count++;
         }
@@ -176,23 +187,21 @@
         }
 
         deleteMyNodes();
-        runGC(session, true);
-        runGC(session, true);
 
         Credentials cred = helper.getSuperuserCredentials();
         Session s2 = helper.getRepository().login(cred);
         root = s2.getRootNode();
         Node node2 = root.addNode("node3");
         Node n = node2.addNode("nodeWithBlob");
-        n.setProperty("test", new RandomInputStream(10, 10000));
-        Thread.sleep(1000);
+        ValueFactory vf = session.getValueFactory();
+        n.setProperty("test", vf.createBinary(new RandomInputStream(10, 1000)));
 
         runGC(session, false);
 
         s2.save();
 
-        InputStream in = n.getProperty("test").getStream();
-        InputStream in2 = new RandomInputStream(10, 10000);
+        InputStream in = n.getProperty("test").getBinary().getStream();
+        InputStream in2 = new RandomInputStream(10, 1000);
         while (true) {
             int a = in.read();
             int b = in2.read();

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java Wed Jun 10 13:08:53 2009
@@ -27,9 +27,11 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
+/**
+ * Test node types with binary default values.
+ */
 public class NodeTypeTest extends AbstractJCRTest {
 
-
     /**
      * Test a node type with a binary default value
      * @throws RepositoryException

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/OpenFilesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/OpenFilesTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/OpenFilesTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/OpenFilesTest.java Wed Jun 10 13:08:53 2009
@@ -21,6 +21,7 @@
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.ValueFactory;
 
 import org.apache.jackrabbit.test.AbstractJCRTest;
 
@@ -36,7 +37,8 @@
         Session session = helper.getReadWriteSession();
         try {
             Node test = session.getRootNode().addNode("test");
-            test.setProperty("data", new ByteArrayInputStream(new byte[10 * 1024]));
+            ValueFactory vf = session.getValueFactory();
+            test.setProperty("data", vf.createBinary(new ByteArrayInputStream(new byte[10 * 1024])));
             session.save();
             for (int i = 0; i < 10000; i++) {
                 test.getProperty("data").getValue();

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/PersistenceManagerIteratorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/PersistenceManagerIteratorTest.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/PersistenceManagerIteratorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/PersistenceManagerIteratorTest.java Wed Jun 10 13:08:53 2009
@@ -36,6 +36,9 @@
 import javax.jcr.Repository;
 import javax.jcr.Session;
 
+/**
+ * Test AbstractBundlePersistenceManager.getAllNodeIds
+ */
 public class PersistenceManagerIteratorTest extends AbstractJCRTest {
     /** logger instance */
     private static final Logger LOG = LoggerFactory.getLogger(PersistenceManagerIteratorTest.class);
@@ -58,20 +61,20 @@
 
         RepositoryImpl r = (RepositoryImpl) rep;
         RepositoryConfig conf = r.getConfig();
-        Collection coll = conf.getWorkspaceConfigs();
+        Collection<WorkspaceConfig> coll = conf.getWorkspaceConfigs();
         String[] names = new String[coll.size()];
-        Iterator wspIt = coll.iterator();
-        for(int i = 0; wspIt.hasNext(); i++) {
+        Iterator<WorkspaceConfig> wspIt = coll.iterator();
+        for (int i = 0; wspIt.hasNext(); i++) {
             WorkspaceConfig wsc = (WorkspaceConfig) wspIt.next();
             names[i] = wsc.getName();
         }
 
-        for (int i = 0; i < names.length; i++) {
+        for (int i = 0; i < names.length && i < 1; i++) {
             Session s = helper.getSuperuserSession(names[i]);
             try {
                 Method m = r.getClass().getDeclaredMethod("getWorkspaceInfo", new Class[] { String.class });
                 m.setAccessible(true);
-                Object info = m.invoke(r, new String[] { names[i] });
+                Object info = m.invoke(r, names[i]);
                 m = info.getClass().getDeclaredMethod("getPersistenceManager", new Class[0]);
                 m.setAccessible(true);
                 PersistenceManager pm = (PersistenceManager) m.invoke(info, new Object[0]);

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/RandomInputStream.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/RandomInputStream.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/RandomInputStream.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/RandomInputStream.java Wed Jun 10 13:08:53 2009
@@ -20,6 +20,9 @@
 import java.io.IOException;
 import java.io.InputStream;
 
+/**
+ * An input stream that returns pseudo-random bytes.
+ */
 public class RandomInputStream extends InputStream {
 
     private static final long MUL = 0x5DEECE66DL;

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/TestTwoGetStreams.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/TestTwoGetStreams.java?rev=783347&r1=783346&r2=783347&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/TestTwoGetStreams.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/TestTwoGetStreams.java Wed Jun 10 13:08:53 2009
@@ -37,7 +37,7 @@
 
     private static Logger log = LoggerFactory.getLogger(TestTwoGetStreams.class);
 
-    private static final int STREAM_LENGTH = 1 * 1024 * 1024;
+    private static final int STREAM_LENGTH = 256 * 1024;
     
     private boolean isDataStoreEnabled() throws RepositoryException {
         RepositoryImpl rep = (RepositoryImpl) superuser.getRepository();
@@ -78,9 +78,9 @@
         }
         superuser.save();
         time = System.currentTimeMillis() - time;
-        // streaming the value again and again takes about 4.3 seconds
+        // streaming 1 MB again and again takes about 4.3 seconds
         // on my computer; copying the data identifier takes about 16 ms
-        assertTrue(time < 500);
+        assertTrue(time < 100);
 
     }
     
@@ -94,12 +94,13 @@
         }
         
         Node root = superuser.getRootNode();
-        root.setProperty("p1", new RandomInputStream(1, STREAM_LENGTH));
-        root.setProperty("p2", new RandomInputStream(2, STREAM_LENGTH));
+        ValueFactory vf = superuser.getValueFactory();
+        root.setProperty("p1", vf.createBinary(new RandomInputStream(1, STREAM_LENGTH)));
+        root.setProperty("p2", vf.createBinary(new RandomInputStream(2, STREAM_LENGTH)));
         superuser.save();
 
-        InputStream i1 = root.getProperty("p1").getStream();
-        InputStream i2 = root.getProperty("p2").getStream();
+        InputStream i1 = root.getProperty("p1").getBinary().getStream();
+        InputStream i2 = root.getProperty("p2").getBinary().getStream();
         assertEquals("p1", i1, new RandomInputStream(1, STREAM_LENGTH));
         assertEquals("p2", i2, new RandomInputStream(2, STREAM_LENGTH));
         try {
@@ -124,12 +125,13 @@
         }
         
         Node root = superuser.getRootNode();
-        root.setProperty("p1", new RandomInputStream(1, STREAM_LENGTH));
-        root.setProperty("p2", new RandomInputStream(1, STREAM_LENGTH));
+        ValueFactory vf = superuser.getValueFactory();
+        root.setProperty("p1", vf.createBinary(new RandomInputStream(1, STREAM_LENGTH)));
+        root.setProperty("p2", vf.createBinary(new RandomInputStream(1, STREAM_LENGTH)));
         superuser.save();
 
-        InputStream i1 = root.getProperty("p1").getStream();
-        InputStream i2 = root.getProperty("p2").getStream();
+        InputStream i1 = root.getProperty("p1").getBinary().getStream();
+        InputStream i2 = root.getProperty("p2").getBinary().getStream();
         assertEquals("Streams are different", i1, i2);
         try {
             i1.close();
@@ -154,11 +156,12 @@
         }
         
         Node root = superuser.getRootNode();
-        root.setProperty("p1", new RandomInputStream(1, STREAM_LENGTH));
+        ValueFactory vf = superuser.getValueFactory();
+        root.setProperty("p1", vf.createBinary(new RandomInputStream(1, STREAM_LENGTH)));
         superuser.save();
 
-        InputStream i1 = root.getProperty("p1").getStream();
-        InputStream i2 = root.getProperty("p1").getStream();
+        InputStream i1 = root.getProperty("p1").getBinary().getStream();
+        InputStream i2 = root.getProperty("p1").getBinary().getStream();
         assertEquals("Streams are different", i1, i2);
         try {
             i1.close();