You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by lu...@apache.org on 2005/02/23 13:42:37 UTC

cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method LockMethod.java

luetzkendorf    2005/02/23 04:42:37

  Modified:    src/webdav/server/org/apache/slide/webdav/method
                        LockMethod.java
  Log:
  fix for 31698 (LockMethod does not fire WebdavEvent)
  
  Revision  Changes    Path
  1.75      +19 -12    jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/LockMethod.java
  
  Index: LockMethod.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/LockMethod.java,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- LockMethod.java	26 Oct 2004 20:06:01 -0000	1.74
  +++ LockMethod.java	23 Feb 2005 12:42:37 -0000	1.75
  @@ -42,6 +42,7 @@
   import org.apache.slide.content.NodeRevisionDescriptors;
   import org.apache.slide.content.RevisionAlreadyExistException;
   import org.apache.slide.content.RevisionDescriptorNotFoundException;
  +import org.apache.slide.event.EventDispatcher;
   import org.apache.slide.event.VetoException;
   import org.apache.slide.lock.NodeLock;
   import org.apache.slide.lock.ObjectIsAlreadyLockedException;
  @@ -55,6 +56,7 @@
   import org.apache.slide.util.XMLValue;
   import org.apache.slide.webdav.WebdavException;
   import org.apache.slide.webdav.WebdavServletConfig;
  +import org.apache.slide.webdav.event.WebdavEvent;
   import org.apache.slide.webdav.util.PropertyHelper;
   import org.apache.slide.webdav.util.WebdavConstants;
   import org.apache.slide.webdav.util.WebdavStatus;
  @@ -353,7 +355,7 @@
                       toLockSubject = getToLockSubject();
                       if (lockDate == null)
                           lockDate = new Date((new Date()).getTime()
  -                                + ((long) lockDuration * 1000L));
  +                                + (lockDuration * 1000L));
   					NodeLock lockToken = new NodeLock(toLockSubject.getUri(),((SubjectNode)security.getPrincipal(slideToken)).getUri(),
   							namespaceConfig.getCreateObjectAction().getUri(), lockDate,
   							inheritance, NodeLock.LOCAL, lockInfo_lockOwner);
  @@ -373,12 +375,11 @@
   			} else if (lockInfo_lockType.equals(E_WRITE)) {
   				try {
                       
  -                if (!checkIfHeaders()) {
  -                    return;
  -                }
  -                      
  -					NamespaceConfig namespaceConfig = token
  -							.getNamespaceConfig();
  +	                if (!checkIfHeaders()) {
  +	                    return;
  +	                }
  +	                      
  +					NamespaceConfig namespaceConfig = token.getNamespaceConfig();
                       toLockSubject = getToLockSubject();
   					NodeLock lockToken = null;
   
  @@ -387,12 +388,18 @@
   
   					if (lockDate == null)
   						lockDate = new Date((new Date()).getTime()
  -								+ ((long) lockDuration * 1000L));
  +								+ (lockDuration * 1000L));
   
   					lockToken = new NodeLock(toLockSubject,
   							(SubjectNode) security.getPrincipal(slideToken),
   							namespaceConfig.getCreateObjectAction(), lockDate,
   							inheritance, exclusive, lockInfo_lockOwner);
  +					
  +					if (WebdavEvent.LOCK.isEnabled() ) {
  +					    EventDispatcher.getInstance().fireVetoableEvent(
  +					            WebdavEvent.LOCK, new WebdavEvent(this));
  +					}
  +					
   					lock.lock(slideToken, lockToken);
   
   					// Set the lock-token header
  @@ -456,7 +463,7 @@
   
   				NodeLock currentLockToken = null;
   				Date newExpirationDate = new Date((new Date()).getTime()
  -						+ ((long) lockDuration * 1000L));
  +						+ (lockDuration * 1000L));
   				while (lockTokens.hasMoreElements()) {
   					currentLockToken = (NodeLock) lockTokens.nextElement();
   					lock.renew(slideToken, currentLockToken, newExpirationDate);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org