mangstadt/biweekly

AssertionError: 96 in TimeUtils.monthLength

Closed this issue · 2 comments

M66B commented
java.lang.AssertionError: 96
    at biweekly.util.com.google.ical.util.TimeUtils.monthLength(SourceFile:1)
    at biweekly.util.com.google.ical.iter.Generators$16.generateDates(SourceFile:1)
    at biweekly.util.com.google.ical.iter.Generators$16.<init>(SourceFile:5)
    at biweekly.util.com.google.ical.iter.Generators.byDayGenerator(SourceFile:2)
    at biweekly.util.com.google.ical.iter.RecurrenceIteratorFactory.createRecurrenceIterator(SourceFile:50)
    at biweekly.io.ICalTimeZone.createIterator(SourceFile:8)
    at biweekly.io.ICalTimeZone.getObservanceDateClosestToTheGivenDate(SourceFile:5)
    at biweekly.io.ICalTimeZone.getObservanceBoundary(SourceFile:16)
    at biweekly.io.ICalTimeZone.getObservanceBoundary(SourceFile:8)
    at biweekly.io.ICalTimeZone.getObservance(SourceFile:1)
    at biweekly.io.ICalTimeZone.calculateRawOffset(SourceFile:1)
    at biweekly.io.ICalTimeZone.<init>(SourceFile:8)
    at biweekly.io.StreamReader.handleTimezones(SourceFile:8)
    at biweekly.io.StreamReader.readNext(SourceFile:5)
    at biweekly.io.chain.ChainingParser.first(SourceFile:6)
    at biweekly.io.chain.ChainingTextParser.first(Unknown Source:0)

I have asked the user for the calendar file, and if it is provided, I will add it here.

It looks like the user is parsing an iCalendar file that contains a malformed timezone definition.

It's trying to parse a month value of "96", but it's throwing an exception because months must be between 1 and 12.

This invalid month value is probably located inside of an RRULE property that is inside of a VTIMEZONE component.

M66B commented

The user confirmed that the calendar file was corrupt in the meantime. Unfortunately, I didn't receive the calendar file, but I think the presented analysis is spot on.