[Yanel-commits] rev 42979 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Thu May 21 15:24:19 CEST 2009


Author: michi
Date: 2009-05-21 15:24:19 +0200 (Thu, 21 May 2009)
New Revision: 42979

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
cancel checkout bug fixed

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-05-21 13:23:47 UTC (rev 42978)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-05-21 13:24:19 UTC (rev 42979)
@@ -261,11 +261,19 @@
                 if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
                     VersionableV2 versionable  = (VersionableV2)resource;
                     try {
-                        versionable.cancelCheckout();
+                        // TODO: Compare the users
+                        String checkoutUserID = versionable.getCheckoutUserID(); 
+                        String userID = getEnvironment(request, response).getIdentity().getUsername();
+                        if (checkoutUserID.equals(userID)) {
+                            versionable.cancelCheckout();
+                        } else {
+                            String eMessage = "Releasing the lock of '" + resource.getPath() + "' failed because checkout user '" + checkoutUserID + "' and session user '" + userID + "' are not the same!";
+                            log.warn(eMessage);
+                            throw new ServletException(eMessage);
+                        }
                     } catch (Exception e) {
                         log.error(e.getMessage(), e);
-                        throw new ServletException("Releasing of lock failed because of: " + resource.getPath() 
-                                + " " + e.getMessage(), e);
+                        throw new ServletException("Releasing the lock of '" + resource.getPath() + "' failed because of: " + e.getMessage(), e);
                     }
                 }
                 return;
@@ -1050,9 +1058,9 @@
             String message = res.getClass().getName() + " is not modifiable (neither V1 nor V2)!";
             log.warn(message);
  
-            StringBuffer sb = new StringBuffer();
 
-            // TODO: Differentiate between Neutron based and other clients ...
+            // TODO: Differentiate between Neutron based and other clients ... (Use method isClientSupportingNeutron())
+            StringBuilder sb = new StringBuilder();
             sb.append("<?xml version=\"1.0\"?>");
             sb.append("<exception xmlns=\"http://www.wyona.org/neutron/1.0\" type=\"neutron\">");
             sb.append("<message>" + message + "</message>");



More information about the Yanel-commits mailing list