Package org.jboss.cache.lock

Examples of org.jboss.cache.lock.IdentityLock


   }

   private synchronized void initLock()
   {
      if (lock_ == null)
         lock_ = new IdentityLock(cache, fqn);
   }
View Full Code Here


   public void releaseAllLocksFIFO(Object owner) {
      // I guess a copy would work as well
      // This seems fairly safe though
      synchronized (locks) {
         for (Iterator i = locks.iterator(); i.hasNext();) {
            IdentityLock lock = (IdentityLock)i.next();
            lock.release(owner);
             if (log.isTraceEnabled())
             {
                 log.trace("releasing lock for " + lock.getFqn() + " (" + lock + ")");
             }
         }
      }
   }
View Full Code Here

      Map nodeMap = w.getNodes();
      for (Iterator i = nodeMap.keySet().iterator(); i.hasNext();)
      {
         WorkspaceNode wn = (WorkspaceNode) nodeMap.get(i.next());
         DataNode n = wn.getNode();
         IdentityLock lock = n.getLock();
         if (lock.isLocked())
         {
            actual.put(n.getFqn(), lock.isReadLocked() ? READ : WRITE);
         }
      }

      return super.invoke(call);
   }
View Full Code Here

   private synchronized void initLock()
   {
      if (lock_ == null)
      {
         lock_ = new IdentityLock(cache.getConfiguration().getIsolationLevel(), delegate);
      }
   }
View Full Code Here

   protected synchronized void initLock()
   {
      if (lock == null)
      {
         lock = new IdentityLock(lockStrategyFactory, delegate);
      }
   }
View Full Code Here

        assertEquals(pojo, workspace.getNode(Fqn.fromString("/one/two")).get("key1"));
        assertEquals(1, workspace.getNode(Fqn.fromString("/one/two")).getMergedData().size());
        assertEquals(3, entry.getLocks().size());
        for (Iterator it = entry.getLocks().iterator(); it.hasNext();)
        {
            IdentityLock lock = (IdentityLock) it.next();
            assertTrue(lock.isWriteLocked());
            assertEquals(gtx, lock.getWriterOwner());
        }
        assertEquals(1, entry.getModifications().size());
        assertTrue(!cache.exists("/one/two"));
        //assertEquals(null,dummy.getCalled());
View Full Code Here

        assertEquals(pojo, workspace.getNode(Fqn.fromString("/one/two")).get("key1"));
        assertEquals(1, workspace.getNode(Fqn.fromString("/one/two")).getMergedData().size());
        assertEquals(3, entry.getLocks().size());
        for (Iterator it = entry.getLocks().iterator(); it.hasNext();)
        {
            IdentityLock lock = (IdentityLock) it.next();
            assertTrue(lock.isWriteLocked());
            assertEquals(gtx, lock.getWriterOwner());
        }
        assertEquals(1, entry.getModifications().size());
        assertTrue(!cache.exists("/one/two"));
        //assertEquals(null,dummy.getCalled());
        assertEquals(MethodDeclarations.optimisticPrepareMethod, dummy.getCalled());


        MethodCall commitMethod = MethodCallFactory.create(MethodDeclarations.commitMethod, new Object[]{gtx});
        try
        {
            cache._replicate(commitMethod);
        }
        catch (Throwable t)
        {
            fail();
        }
        assertEquals(3, entry.getLocks().size());
        for (Iterator it = entry.getLocks().iterator(); it.hasNext();)
        {
            IdentityLock lock = (IdentityLock) it.next();
            assertEquals(false, lock.isLocked());

        }
        //make sure the nodes and locks are the same order
        int i = 0;
        for (Iterator it = workspace.getNodes().values().iterator(); it.hasNext();)
View Full Code Here

        assertEquals(pojo, workspace.getNode(Fqn.fromString("/one/two")).get("key1"));
        assertEquals(1, workspace.getNode(Fqn.fromString("/one/two")).getMergedData().size());
        assertEquals(3, entry.getLocks().size());
        for (Iterator it = entry.getLocks().iterator(); it.hasNext();)
        {
            IdentityLock lock = (IdentityLock) it.next();
            assertTrue(lock.isWriteLocked());
            assertEquals(gtx, lock.getWriterOwner());
        }
        assertEquals(1, entry.getModifications().size());
        assertTrue(!cache.exists("/one/two"));
        assertEquals(MethodDeclarations.optimisticPrepareMethod, dummy.getCalled());


        MethodCall rollbackMethod = MethodCallFactory.create(MethodDeclarations.rollbackMethod, new Object[]{gtx});
        try
        {
            cache._replicate(rollbackMethod);
        }
        catch (Throwable t)
        {
            fail();
        }
        assertEquals(3, entry.getLocks().size());
        for (Iterator it = entry.getLocks().iterator(); it.hasNext();)
        {
            IdentityLock lock = (IdentityLock) it.next();
            assertEquals(false, lock.isLocked());

        }
        //make sure the nodes and locks are the same order
        int i = 0;
        for (Iterator it = workspace.getNodes().values().iterator(); it.hasNext();)
View Full Code Here

   private void removeLocksForDeadMembers(DataNode node,
                                          Vector deadMembers)
   {
      Set deadOwners = new HashSet();
      IdentityLock lock = node.getLock();
      Object owner = lock.getWriterOwner();

      if (isLockOwnerDead(owner, deadMembers))
      {
         deadOwners.add(owner);
      }

      Iterator iter = lock.getReaderOwners().iterator();
      while (iter.hasNext())
      {
         owner = iter.next();
         if (isLockOwnerDead(owner, deadMembers))
         {
View Full Code Here

   }

   private synchronized void initLock()
   {
      if (lock_ == null)
         lock_ = new IdentityLock(cache, fqn);
   }
View Full Code Here

TOP

Related Classes of org.jboss.cache.lock.IdentityLock

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.