Sometimes in my unit-tests I get the following server-side-error, without
further exception.
Only this output ...

ERROR [SharedItemStateManager] Unable to create event state collection.

... on the client-side I get a Transaction-Rollback-Exception ...

What does this ERROR mean?

Thx,
Gamba



Gamba wrote:
> 
> Thx for the hint with the UUIDs.
> 
> Sure, I totally agree with you it could be an concurrency problem, because
> I'm not able ro reproduce this exceptions at the moment. During the tests
> some other excpetions occurs e.g "inactive logical session handle called"
> or 
> 
>  javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist
> resource, see the previous warnings. tx=TransactionImple < ac,
> BasicAction: a11359c:48a:4ab35912:269d status: ActionStatus.ABORT_ONLY >
> at
> org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:759)
> at ...
> 
> So, indeed, it looks like a concurrency problem. But I have a
> singleton-instance which should be thread-safe (only one access-point to
> jcr) and I did not expect such a behaviour. Here is the singleton code:
> 
> public final class SessionSingleton
> {
>       private final static Logger     log     =
> Logger.getLogger(SessionSingleton.class);
> 
>       // Made final so singleton will be read-only
>       private final static SessionSingleton   instance;
> 
>       // Static initializer
>       static {
>               try {
>                       // Perform initialization here
>                       instance = new SessionSingleton();
>                       
>                       if (log.isDebugEnabled()) {
>                               log.debug("New SessionSingleton Instance 
> created ...");
>                       }
>               }
>               catch (Throwable e) {
>                       throw new RuntimeException(e.getMessage());
>               }
>       }
> 
>       // private construktor
>       private SessionSingleton()
>       {}
> 
>       // get Singleton-Instance
>       public static SessionSingleton getInstance() {
>               if (log.isDebugEnabled()) {
>                       System.out.println("Retrieving SessionSingleton 
> instance ...");
>               }
>               return instance;
>       }
> 
>       // -----
>       // Methods for JCR-Access
>       // -----
>       public void createFolderNode(String path, String name, Repository
> repository)
>               throws HMGJCRException, RepositoryException
>       {
>               synchronized (instance) {
>                       Session session = null;
>                       Node lastNodeInTree = null;
> 
>                       try {
>                               // JackRabbit Zugriff über JNDI
>                               session = repository.login(new 
> SimpleCredentials("user", 
>                                     "pwd".toCharArray()), "default");
> 
>                               Node rootNode = session.getRootNode();
>                               lastNodeInTree = rootNode.getNode(path);
>                               Node addedNode = null;
> 
>                               if (!lastNodeInTree.hasNode(name)) {
>                                       addedNode = 
> lastNodeInTree.addNode(name);
>                               }
>                               else {
>                                       throw new HMGJCRException("Folder " + 
> name + " in path " + path + " 
>                                            already existis");
>                               }
> 
>                               if (log.isInfoEnabled()) {
>                                       log.info("Folder " + name + " in path " 
> + path + " added by Thread  :
> " + 
>                                            
> Thread.currentThread().getName());
>                               }
> 
>                               session.save();
>                       }
>                       finally {
>                               if (session != null) {
>                                       session.logout();
>                                       session = null;
>                               }
>                       }
>               }
>       }
> 
>       public void deleteFolderNode(String path, Repository repository)
>               throws RepositoryException
>       {
>               synchronized (instance) {
>                       Session session = null;
>                       Node oldNode = null;
> 
>                       try {
>                               // JackRabbit Zugriff über JNDI
>                               session = repository.login(new 
> SimpleCredentials("user",
>                                   "pwd".toCharArray()), "default");
> 
>                               Node rootNode = session.getRootNode();
> 
>                               if (rootNode.hasNode(path)) {
>                                       oldNode = rootNode.getNode(path);
>                                       // oldNode.lock(true, true);
>                                       oldNode.remove();
>                       
>                                       if (log.isInfoEnabled()) {
>                                               log.info("Folder " + path + " 
> deleted by Thread: " +
>                                                  
> Thread.currentThread().getName());
>                                       }
>                               }
>                               else {
>                                       if (log.isInfoEnabled()) {
>                                               log.info("Folder " + path + " 
> not found by Thread: " + 
>                                                  
> Thread.currentThread().getName());
>                                       }
>                               }
> 
>                               session.save();
>                       }
>                       finally {
>                               if (session != null) {
>                                       session.logout();
>                                       session = null;
>                               }
>                       }
>               }
>       }
> }
> 
> Regards,
> Gamba
> 
> 

-- 
View this message in context: 
http://www.nabble.com/ERROR--EventStateCollection--Unable-to-resolve-path-for-item-...-tp25505035p25530243.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Reply via email to