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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to