[Bedework-commit] calendarapi r1464 - releases/bedework-3.6/icalendar/src/org/bedework/icalendar

svnadmin at bedework.org svnadmin at bedework.org
Tue Mar 8 09:56:49 EST 2011


Author: douglm
Date: 2011-03-08 09:56:49 -0500 (Tue, 08 Mar 2011)
New Revision: 1464

Modified:
   releases/bedework-3.6/icalendar/src/org/bedework/icalendar/BwEventUtil.java
Log:
The suppressed master record that's generated as part of detached
instances does not support all-day events (VALUE=DATE).  The attached
patch fixes this by setting DTSTART on the suppressed master record to
be VALUE=DATE based if the detached instance is also VALUE=DATE based.
DTSTART in the master record must match the same type as in the
detached instance or else the override of the supressed master record
will fail. Paul Fisher.

Modified: releases/bedework-3.6/icalendar/src/org/bedework/icalendar/BwEventUtil.java
===================================================================
--- releases/bedework-3.6/icalendar/src/org/bedework/icalendar/BwEventUtil.java	2011-03-08 14:56:48 UTC (rev 1463)
+++ releases/bedework-3.6/icalendar/src/org/bedework/icalendar/BwEventUtil.java	2011-03-08 14:56:49 UTC (rev 1464)
@@ -53,6 +53,7 @@
 import net.fortuna.ical4j.model.CategoryList;
 import net.fortuna.ical4j.model.Component;
 import net.fortuna.ical4j.model.ComponentList;
+import net.fortuna.ical4j.model.Date;
 import net.fortuna.ical4j.model.Parameter;
 import net.fortuna.ical4j.model.ParameterList;
 import net.fortuna.ical4j.model.Period;
@@ -68,6 +69,7 @@
 import net.fortuna.ical4j.model.component.VToDo;
 import net.fortuna.ical4j.model.parameter.AltRep;
 import net.fortuna.ical4j.model.parameter.FbType;
+import net.fortuna.ical4j.model.parameter.Value;
 import net.fortuna.ical4j.model.property.Attach;
 import net.fortuna.ical4j.model.property.Attendee;
 import net.fortuna.ical4j.model.property.Categories;
@@ -354,14 +356,21 @@
           // XXX This seems bogus
           DtStart mdtStart;
 
-          String bogusDate = "19980118T230000";
+          String bogusDate = "19980118";
+          String bogusTime = "T230000";
 
-          if (dtStart.isUtc()) {
-            mdtStart = new DtStart(bogusDate + "Z");
+          Parameter par = dtStart.getParameter("VALUE");
+          boolean isDateType = (par != null) && (par.equals(Value.DATE));
+
+          if (isDateType) {
+            mdtStart = new DtStart(new Date(bogusDate));
+          } else if (dtStart.isUtc()) {
+            mdtStart = new DtStart(bogusDate + bogusTime + "Z");
           } else if (dtStart.getTimeZone() == null) {
-            mdtStart = new DtStart(bogusDate);
+            mdtStart = new DtStart(bogusDate + bogusTime);
           } else {
-            mdtStart = new DtStart(bogusDate + "Z", dtStart.getTimeZone());
+            mdtStart = new DtStart(bogusDate + bogusTime + "Z",
+                                   dtStart.getTimeZone());
           }
 
           setDates(e, mdtStart, null, null, chg);



More information about the Bedework-commit mailing list