2016-01-22 60 views
1

我正在使用的系統一直在使用ical4j庫將我們用戶的Google日曆與我們內置的日曆同步一段時間,並且一直工作正常,直到幾個星期前他們的日曆停止synching。快速查看日誌顯示以下堆棧跟蹤:使用ical4j庫解析Google icals時出錯

=75213399 2016-01-15 14:37:33,574 [task-scheduler-5] INFO org.springframework.integration.mail.ImapMailReceiver - attempting to receive mail from folder [INBOX] 
=75214067 2016-01-15 14:37:34,242 [calendar-9] INFO com.starfish.batch.integration.GoogleCalendarParser - Using temp dir /var/log/starfish/starfish-batch-stage 
=75214070 2016-01-15 14:37:34,245 [calendar-9] ERROR com.starfish.batch.integration.GoogleCalendarParser - Exception getting user google cal for 4829on try number 2 trying again. 
net.fortuna.ical4j.data.ParserException: Error at line 841:Invalid parameter name: FILENAME 
    at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:148) 
    at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:211) 
    at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:192) 
    at..... 

我使用了基於相同的庫來驗證錯誤的iCal的在線驗證工具(http://severinghaus.org/projects/icv/)。

產生該分析異常將ICAL的部分是(省略客戶端信息):

ATTACH;FILENAME=Reading Day Holiday Lunch 2015.docx:https://drive.google.co 
m/a/ZZZZ.edu/file/d/ZZZZZZZZZZZZZZZZZZZZZZZZ/view?usp=drive_web 

我們的系統是使用ical4j版本1.0-RC3快照。

我研究了谷歌是否改變了生成方式,但無法找到任何東西。我可能在錯誤的地方搜索。有沒有人遇到過這個問題,如果有的話,解決它的方法是什麼?

是否有人知道谷歌可能會導致此異常的任何更改?

用戶的附件位置與它有什麼關係?

回答

3

默認情況下,ical4j嚴格遵守RFC5545中定義的默認註冊屬性集。這意味着任何未在RFC5545中定義的屬性或參數都應該以X-作爲前綴。

您正在努力的特定參數(FILENAME)被添加爲https://tools.ietf.org/html/draft-daboo-caldav-attachments-03#section-4.2的一部分。

爲了克服這個問題,你要設置

ical4j.parsing.relaxed =真

在ical4j.properties

是(這本身應該是你的ical4j.jar jar文件的根目錄)或作爲系統屬性。現在

,我不是100%肯定您正在使用不包含此正確修復,所以你可能還需要從https://github.com/ical4j/ical4j

+0

升級到更高版本的ical4j的版本,謝謝!這對我有效。 – alexolivas