PUBLIC - Liferay Portal Community Edition
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-31540

Enterprise Calendar - ParseException when deleting a repeating event using "All Following"

    Details

    • Type: Regression Bug Regression Bug
    • Status: Closed
    • Resolution: Fixed
    • Affects Version/s: 6.2.0 CE M3
    • Fix Version/s: 6.2.0 CE M3
    • Labels:
      None
    • Environment:
      Tomcat 7.0 + MySQL 5. Portal 6.2.x GIT ID: 9741331a07b220cba5079904f59267700dd06550.
      Plugins 6.2.x GIT ID: 9e05b4833868eccf34e2f053890e1305fd5700bd.
    • Fix Priority:
      4
    • Similar Issues:
      Show 5 results 

      Description

      When deleting a repeating event using "All Following", you get a java.text.ParseException in the console. The repeating event gets deleted but you are unable to create another repeating event.

      1. Create a Repeating Event
      2. Delete the Repeating Event using "All Following"
      3. You will get an exception stacktrace
      4. Try to create another Repeating Event and save. Event does not save and you get the same exceptions
      19:16:42,022 ERROR [http-bio-8080-exec-4][RecurrenceUtil:82] Unable to parse data
      java.text.ParseException: cannot parse [[FREQ=DAILY;UNTIL=20121211T010000Z;COUNT=15;INTERVAL=1]] in [RRULE, recur] : UNTIL & COUNT are exclusive
              at com.google.ical.values.IcalSchema.badPart(IcalSchema.java:148)
              at com.google.ical.values.RRuleSchema$4.apply(RRuleSchema.java:149)
              at com.google.ical.values.IcalSchema.applyContentSchema(IcalSchema.java:97)
              at com.google.ical.values.RRuleSchema$1.apply(RRuleSchema.java:79)
              at com.google.ical.values.IcalSchema.applyObjectSchema(IcalSchema.java:113)
              at com.google.ical.values.AbstractIcalObject.parse(AbstractIcalObject.java:82)
              at com.google.ical.values.RRule.<init>(RRule.java:52)
              at com.google.ical.iter.RecurrenceIteratorFactory.parseContentLines(RecurrenceIteratorFactory.java:451)
              at com.google.ical.iter.RecurrenceIteratorFactory.createRecurrenceIterable(RecurrenceIteratorFactory.java:93)
              at com.google.ical.iter.RecurrenceIteratorFactory.createRecurrenceIterator(RecurrenceIteratorFactory.java:86)
              at com.google.ical.iter.RecurrenceIteratorFactory.createRecurrenceIterator(RecurrenceIteratorFactory.java:141)
              at com.liferay.calendar.util.RecurrenceUtil.expandCalendarBookings(RecurrenceUtil.java:58)
              at com.liferay.calendar.service.impl.CalendarBookingLocalServiceImpl.search(CalendarBookingLocalServiceImpl.java:354)
              at sun.reflect.GeneratedMethodAccessor1019.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:122)
              at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71)
              at com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(DynamicDataSourceTransactionInterceptor.java:44)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:118)
              at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:55)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:118)
              at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:162)
              at $Proxy394.search(Unknown Source)
              at com.liferay.calendar.service.impl.CalendarBookingServiceImpl.search(CalendarBookingServiceImpl.java:193)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:122)
              at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71)
              at com.liferay.portal.dao.jdbc.aop.DynamicDataSourceTransactionInterceptor.invoke(DynamicDataSourceTransactionInterceptor.java:44)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:118)
              at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:55)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:118)
              at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:55)
              at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:118)
              at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:162)
              at $Proxy395.search(Unknown Source)
              at com.liferay.calendar.service.CalendarBookingServiceUtil.search(CalendarBookingServiceUtil.java:162)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at com.liferay.portal.jsonwebservice.JSONWebServiceActionImpl._invokeActionMethod(JSONWebServiceActionImpl.java:210)
              at com.liferay.portal.jsonwebservice.JSONWebServiceActionImpl.invoke(JSONWebServiceActionImpl.java:69)
              at com.liferay.portal.jsonwebservice.action.JSONWebServiceInvokerAction._executeStatement(JSONWebServiceInvokerAction.java:244)
              at com.liferay.portal.jsonwebservice.action.JSONWebServiceInvokerAction.invoke(JSONWebServiceInvokerAction.java:111)
              at com.liferay.portal.jsonwebservice.JSONWebServiceServiceAction.getJSON(JSONWebServiceServiceAction.java:106)
              at com.liferay.portal.struts.JSONAction.execute(JSONAction.java:77)
              at com.liferay.portal.servlet.JSONServlet.service(JSONServlet.java:61)
              at com.liferay.portal.jsonwebservice.JSONWebServiceServlet.service(JSONWebServiceServlet.java:93)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
              at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
              at com.liferay.portal.servlet.filters.authverifier.AuthVerifierFilter.processFilter(AuthVerifierFilter.java:169)
              at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
              at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
              at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83)
              at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
              at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
              at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
              at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
              at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
              at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:191)
              at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
              at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
              at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:75)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
              at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
              at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
              at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
              at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java.lang.Thread.run(Thread.java:662)

        Activity

        Hide
        Sharon Choi added a comment -

        PASSED Manual Testing using the following steps:

        1. Create a few Repeating Events with a Daily, Monthly, Weekly, and Yearly repeat cycle and no end date
        2. Delete the Repeating Events using "All Following"
        3. Assert that no errors display on the console
        4. Create a few Repeating Events with a Daily, Monthly, Weekly, and Yearly repeat cycle and specify an end date
        5. Delete the Repeating Events using "All Following"
        6. Assert that no errors display on the console
        7. Create a few Repeating Events with a Daily, Monthly, Weekly, and Yearly repeat cycle and specify a specific number of occurrences
        8. Delete the Repeating Events using "All Following"
        9. Assert that no errors display on the console

        Fixed on:
        Tomcat 7.0 + MySQL 5. Portal 6.2.x GIT ID: a4076e2b170d4b627bea9a95399cb0f955501c57.
        Plugins 6.2.x GIT ID: 6afa94b9c21a8f46bd8a955bd43afe6b8b93bf4b.

        After deleting several repeating events, whether it is daily, weekly, monthly, and yearly, and with different end dates and different number of occurrences, the user will not be able to see a ParseException in the console.

        Show
        Sharon Choi added a comment - PASSED Manual Testing using the following steps: Create a few Repeating Events with a Daily, Monthly, Weekly, and Yearly repeat cycle and no end date Delete the Repeating Events using "All Following" Assert that no errors display on the console Create a few Repeating Events with a Daily, Monthly, Weekly, and Yearly repeat cycle and specify an end date Delete the Repeating Events using "All Following" Assert that no errors display on the console Create a few Repeating Events with a Daily, Monthly, Weekly, and Yearly repeat cycle and specify a specific number of occurrences Delete the Repeating Events using "All Following" Assert that no errors display on the console Fixed on: Tomcat 7.0 + MySQL 5. Portal 6.2.x GIT ID: a4076e2b170d4b627bea9a95399cb0f955501c57. Plugins 6.2.x GIT ID: 6afa94b9c21a8f46bd8a955bd43afe6b8b93bf4b. After deleting several repeating events, whether it is daily, weekly, monthly, and yearly, and with different end dates and different number of occurrences, the user will not be able to see a ParseException in the console.

          People

          • Assignee:
            Sharon Choi
            Reporter:
            Albert Lee
            Recent user:
            Esther Sanz
            Participants of an Issue:
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Days since last comment:
              2 years, 11 weeks ago

              Development

                Structure Helper Panel