If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

SETPOS does not work correctly

VERIFIED DUPLICATE of bug 322458

Status

Calendar
Internal Components
VERIFIED DUPLICATE of bug 322458
12 years ago
11 years ago

People

(Reporter: Andrew N Dowden, Unassigned)

Tracking

Details

(Reporter)

Description

12 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a1) Gecko/20060329 Mozilla Sunbird/0.3a1+

Boxing Day (Canada)
Observed next weekday after Christmas Day observed (Canada)
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=26;BYDAY=TU,WE,TH,FR;BYSETPOS=1
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=27,28;BYDAY=MO,TU;BYSETPOS=1

In second rule, multiplier effect (2 month-days, and 2 weekdays == 4 possible occurrences per year) should be negated by 'BYSETPOS=1'.  Only first match (per year) should be returned.




Reproducible: Always

Steps to Reproduce:
1. load iCal file, including syntax as above
2. move calendar to December 2010


Actual Results:  
matches: 2010-12-27, and 2010-12-28
 (ALL possible matches)

Expected Results:  
match: 2010-12-27
 (first occurence ONLY)

work around: (split rules)

Boxing Day (Canada) - with workaround
Observed next weekday after Christmas Day observed (Canada)
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=26;BYDAY=TU,WE,TH,FR;BYSETPOS=1
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=27,28;BYDAY=MO
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=27;BYDAY=TU

Tested, and fixes problem (for now).  But would be needed for any imported iCal file using this feature.

Comment 1

12 years ago
Duplicate of bug 322458?
(Reporter)

Comment 2

12 years ago
This might explain bug 322458, but the (PayDay.ics) iCal syntax looks Ok.

In rule 1 (my example), the 'BYSETPOS=1' with TU,WE,TH,FR works fine.  Any other instance, where multiple weekdays occur, has also tested Ok (so far).
(Reporter)

Comment 3

12 years ago
I loaded and tested PayDay.ics from bug 322458.  It doesn't work.

I then reviewed ALL occurences where I have tested / used BYSETPOS.  I have been mostly focusing on creating the iCal syntax, and dialogs (for same), rather that testing exhaustively.

Conclusion: It may not work at all. (Need to continue testing.)
(Reporter)

Comment 4

12 years ago
further testing:

//  first instance

Test 1:  'first Mon or Tue ONLY, after DTSTART'
RRULE:FREQ=MONTHLY;BYDAY=MO,TU;BYSETPOS=1
DTSTART;VALUE=DATE:20060403
DTEND;VALUE=DATE:20060404

result:  'any Mon or Tue, after DTSTART'
(equivalent to)
RRULE:FREQ=MONTHLY;BYDAY=MO,TU
DTSTART;VALUE=DATE:20060403
DTEND;VALUE=DATE:20060404


Test 2:  'first Fri or Sat ONLY, in April ONLY, after DTSTART'
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA;BYSETPOS=1
DTSTART;VALUE=DATE:20060407
DTEND;VALUE=DATE:20060408

result:  'any Fri or Sat, in April ONLY, after DTSTART'
(equivalent to)
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA
DTSTART;VALUE=DATE:20060407
DTEND;VALUE=DATE:20060408


//  last instance

Test 3:  'last Mon or Tue ONLY, after DTSTART'
RRULE:FREQ=MONTHLY;BYDAY=MO,TU;BYSETPOS=-1
DTSTART;VALUE=DATE:20060424
DTEND;VALUE=DATE:20060425

result:  'any Mon or Tue, after DTSTART'
(equivalent to)
RRULE:FREQ=MONTHLY;BYDAY=MO,TU
DTSTART;VALUE=DATE:20060424
DTEND;VALUE=DATE:20060425


Test 4:  'last Fri or Sat ONLY, in April ONLY, after DTSTART'
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA;BYSETPOS=-1
DTSTART;VALUE=DATE:20060428
DTEND;VALUE=DATE:20060429

result:  'any Fri or Sat, in April ONLY, after DTSTART'
(equivalent to)
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA
DTSTART;VALUE=DATE:20060428
DTEND;VALUE=DATE:20060429


(Also tested on Lightning, no noted variance)
This really is bug 322458. bysetpos is simply ignored.

*** This bug has been marked as a duplicate of 322458 ***
Status: UNCONFIRMED → RESOLVED
Last Resolved: 12 years ago
Resolution: --- → DUPLICATE

Updated

12 years ago
Status: RESOLVED → VERIFIED
The bugspam monkeys have struck again. They are currently chewing on default assignees for Calendar. Be afraid for your sanity!
Assignee: base → nobody
You need to log in before you can comment on or make changes to this bug.