[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