[Bedework-commit] calendarapi r288 - in trunk: calFacade/src/org/bedework/calfacade calsvc/src/org/bedework/calsvc calsvci/src/org/bedework/calsvci

svnadmin at bedework.org svnadmin at bedework.org
Thu May 17 12:03:17 EDT 2007


Author: douglm
Date: 2007-05-17 12:03:15 -0400 (Thu, 17 May 2007)
New Revision: 288

Modified:
   trunk/calFacade/src/org/bedework/calfacade/BwEvent.java
   trunk/calFacade/src/org/bedework/calfacade/ScheduleResult.java
   trunk/calsvc/src/org/bedework/calsvc/AutoResponder.java
   trunk/calsvc/src/org/bedework/calsvc/CalSvc.java
   trunk/calsvci/src/org/bedework/calsvci/CalSvcIPars.java
Log:
Further fixes for principals.

Better error reporting fro autoresponder

Modified: trunk/calFacade/src/org/bedework/calfacade/BwEvent.java
===================================================================
--- trunk/calFacade/src/org/bedework/calfacade/BwEvent.java	2007-05-17 14:30:35 UTC (rev 287)
+++ trunk/calFacade/src/org/bedework/calfacade/BwEvent.java	2007-05-17 16:03:15 UTC (rev 288)
@@ -1505,8 +1505,25 @@
       return null;
     }
 
+    int uriLen = uri.length();
+    while (uri.charAt(uriLen - 1) == '/') {
+      uriLen--;
+      if (uriLen == 0) {
+        return null;
+      }
+    }
+
     for (BwAttendee att: getAttendees()) {
-      if (uri.equals(att.getAttendeeUri())) {
+      String auri = att.getAttendeeUri();
+      int auriLen = auri.length();
+      while (auri.charAt(auriLen - 1) == '/') {
+        auriLen--;
+        if (auriLen == 0) {
+          return null;
+        }
+      }
+
+      if ((auriLen == uriLen) && (uri.regionMatches(0, auri, 0, uriLen))) {
         return att;
       }
     }

Modified: trunk/calFacade/src/org/bedework/calfacade/ScheduleResult.java
===================================================================
--- trunk/calFacade/src/org/bedework/calfacade/ScheduleResult.java	2007-05-17 14:30:35 UTC (rev 287)
+++ trunk/calFacade/src/org/bedework/calfacade/ScheduleResult.java	2007-05-17 16:03:15 UTC (rev 288)
@@ -36,7 +36,7 @@
     public BwFreeBusy freeBusy;
 
     public String toString() {
-      StringBuffer sb = new StringBuffer("ScheduleRecipientResult{");
+      StringBuilder sb = new StringBuilder("ScheduleRecipientResult{");
 
       ScheduleResult.tsseg(sb, "", "recipient", recipient);
       ScheduleResult.tsseg(sb, ", ", "status", status);
@@ -101,14 +101,73 @@
   public Collection<ScheduleRecipientResult> recipientResults =
     new ArrayList<ScheduleRecipientResult>();
 
+  /**
+   * @return null for no failure or the name of the failure
+   */
+  public String failureReason() {
+    String reason = tryFail("badMethod", badMethod);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("badResponseMethod", badResponseMethod);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("badSourceCalendar", badSourceCalendar);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("noRecipients", noRecipients);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("noOriginator", noOriginator);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("noAttendees", noAttendees);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("badAttendees", badAttendees);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("unknownAttendee", unknownAttendee);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("attendeeAccessDisallowed", attendeeAccessDisallowed);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("invalidPartStatus", invalidPartStatus);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("multipleEvents", multipleEvents);
+    if (reason != null) {
+      return reason;
+    }
+    reason = tryFail("duplicateUid", duplicateUid);
+    return reason;
+  }
+
   public String toString() {
-    StringBuffer sb = new StringBuffer("ScheduleResult{");
+    StringBuilder sb = new StringBuilder("ScheduleResult{");
 
     tsseg(sb, "", "badMethod", badMethod);
-    tsseg(sb, "\n, ", "noRecipients", noRecipients);
-    tsseg(sb, ", ", "noAttendees", noAttendees);
+    tsseg(sb, ", ", "badResponseMethod", badResponseMethod);
+    tsseg(sb, ", ", "badSourceCalendar", badSourceCalendar);
+    tsseg(sb, ",\n ", "noRecipients", noRecipients);
+    tsseg(sb, ", ", "noOriginator", noOriginator);
+    tsseg(sb, ",\n", "noAttendees", noAttendees);
     tsseg(sb, ", ", "badAttendees", badAttendees);
+    tsseg(sb, ", ", "unknownAttendee", unknownAttendee);
     tsseg(sb, ", ", "attendeeAccessDisallowed", attendeeAccessDisallowed);
+    tsseg(sb, ",\n", "invalidPartStatus", invalidPartStatus);
+    tsseg(sb, ", ", "multipleEvents", multipleEvents);
+    tsseg(sb, ", ", "duplicateUid", duplicateUid);
 
     tsseg(sb, "\n, ", "ignored", ignored);
     tsseg(sb, ", ", "reschedule", reschedule);
@@ -127,21 +186,29 @@
     return sb.toString();
   }
 
-  private static void tsseg(StringBuffer sb, String delim, String name, int val) {
+  private static String tryFail(String name, boolean val) {
+    if (val) {
+      return name;
+    }
+
+    return null;
+  }
+
+  private static void tsseg(StringBuilder sb, String delim, String name, int val) {
     sb.append(delim);
     sb.append(name);
     sb.append("=");
     sb.append(val);
   }
 
-  private static void tsseg(StringBuffer sb, String delim, String name, String val) {
+  private static void tsseg(StringBuilder sb, String delim, String name, String val) {
     sb.append(delim);
     sb.append(name);
     sb.append("=");
     sb.append(val);
   }
 
-  private static void tsseg(StringBuffer sb, String delim, String name, boolean val) {
+  private static void tsseg(StringBuilder sb, String delim, String name, boolean val) {
     sb.append(delim);
     sb.append(name);
     sb.append("=");

Modified: trunk/calsvc/src/org/bedework/calsvc/AutoResponder.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/AutoResponder.java	2007-05-17 14:30:35 UTC (rev 287)
+++ trunk/calsvc/src/org/bedework/calsvc/AutoResponder.java	2007-05-17 16:03:15 UTC (rev 288)
@@ -135,6 +135,7 @@
         trace("autoRespond " + sr);
       }
     } catch (Throwable t) {
+      error(t);
     } finally {
       try {
         closeSvci(svci);
@@ -198,6 +199,10 @@
     return log;
   }
 
+  private void error(Throwable t) {
+    getLogger().error(this, t);
+  }
+
   private void trace(String msg) {
     getLogger().debug(msg);
   }

Modified: trunk/calsvc/src/org/bedework/calsvc/CalSvc.java
===================================================================
--- trunk/calsvc/src/org/bedework/calsvc/CalSvc.java	2007-05-17 14:30:35 UTC (rev 287)
+++ trunk/calsvc/src/org/bedework/calsvc/CalSvc.java	2007-05-17 16:03:15 UTC (rev 288)
@@ -328,6 +328,9 @@
    */
   public void init(CalSvcIPars parsParam) throws CalFacadeException {
     pars = (CalSvcIPars)parsParam.clone();
+
+    fixUsers();
+
     debug = pars.getDebug();
 
     env = CalEnvFactory.getEnv(pars.getEnvPrefix(), debug);
@@ -4079,6 +4082,22 @@
     }
   }
 
+  private void fixUsers() {
+    String auser = pars.getAuthUser();
+    while ((auser != null) && (auser.endsWith("/"))) {
+      auser = auser.substring(0, auser.length() - 1);
+    }
+
+    pars.setAuthUser(auser);
+
+    auser = pars.getUser();
+    while ((auser != null) && (auser.endsWith("/"))) {
+      auser = auser.substring(0, auser.length() - 1);
+    }
+
+    pars.setUser(auser);
+  }
+
   /* ====================================================================
    *                   Private indexing methods
    * ==================================================================== */

Modified: trunk/calsvci/src/org/bedework/calsvci/CalSvcIPars.java
===================================================================
--- trunk/calsvci/src/org/bedework/calsvci/CalSvcIPars.java	2007-05-17 14:30:35 UTC (rev 287)
+++ trunk/calsvci/src/org/bedework/calsvci/CalSvcIPars.java	2007-05-17 16:03:15 UTC (rev 288)
@@ -139,6 +139,13 @@
   }
 
   /**
+   * @param val String auth user
+   */
+  public void setAuthUser(String val) {
+    authUser = val;
+  }
+
+  /**
    * @return String auth user
    */
   public String getAuthUser() {



More information about the Bedework-commit mailing list