Thanks for your help.  FYI: https://issues.apache.org/jira/browse/JCR-3194


On 12/23/2011 03:49 PM, Stefan Guggisberg wrote:
package test;
>>>
>>>  import java.io.File;
>>>  import java.util.concurrent.ExecutorService;
>>>  import java.util.concurrent.Executors;
>>>  import java.util.concurrent.TimeUnit;
>>>  import java.util.concurrent.atomic.AtomicBoolean;
>>>  import java.util.concurrent.atomic.AtomicInteger;
>>>
>>>  import javax.jcr.Repository;
>>>  import javax.jcr.RepositoryException;
>>>  import javax.jcr.Session;
>>>  import javax.jcr.SimpleCredentials;
>>>
>>>  import org.apache.jackrabbit.core.TransientRepository;
>>>
>>>  public class JackrabbitTest {
>>>
>>>    public static void main(final String[] args) throws Exception {
>>>      File dir = File.createTempFile("jackrabbit-test", "");
>>>      dir.delete();
>>>      dir.mkdir();
>>>      System.out.println("created temporary directory: " +
>>>          dir.getAbsolutePath());
>>>      dir.deleteOnExit();
>>>
>>>      final Repository jcrRepo = new TransientRepository(dir);
>>>      final AtomicBoolean passed = new AtomicBoolean(true);
>>>      final AtomicInteger counter = new AtomicInteger(0);
>>>      ExecutorService executor = Executors.newFixedThreadPool(50);
>>>      Runnable runnable = new Runnable() {
>>>
>>>        @Override
>>>        public void run() {
>>>          try {
>>>            Session session = jcrRepo.login(
>>>                new SimpleCredentials("admin",
>>>                    "admin".toCharArray()));
>>>            session.getRootNode().addNode("n" +
>>>                    counter.getAndIncrement()); //unique name
>>>            session.save();
>>>            session.logout();
>>>          } catch (RepositoryException e) {
>>>            e.printStackTrace();
>>>            passed.set(false);
>>>          }
>>>        }
>>>
>>>      };
>>>      System.out.println("Running threads");
>>>      for (int i = 0; i<   500; i++) {
>>>        executor.execute(runnable);
>>>      }
>>>      executor.shutdown(); //Disable new tasks from being submitted
>>>      if (!executor.awaitTermination(120, TimeUnit.SECONDS)) {
>>>        System.err.println("timeout");
>>>        System.exit(1);
>>>      }
>>>      if (!passed.get()) {
>>>        System.err.println("one or more threads got an exception");
>>>        System.exit(1);
>>>      } else {
>>>        System.out.println("all threads ran with no exceptions");
>>>        System.exit(0);
>>>      }
>>>
>>>    }
>>>
>>>  }

Reply via email to