3 Replies Latest reply on Nov 13, 2007 4:42 PM by SteveChen

    bugs in poll creation

      Hi,

       

      Just wanted to point out a couple of bugs I'm seeing in the poll creator.  I searched the issue tracker and forums, but didn't see anything related to this.  If you are already aware of these, then please disregard this posting, but if you could provide a link to the issue, I would appreciate it.

       

       

       

       

       

       

       

       

      The first one is that if you add options to a poll, the numbering is off.  It starts at 5 instead of 3...  Behind the scenes it looks like there are extra blank rows being created for the #1 and #2 options that are reserved for error messages which is throwing off the actual option count which uses the number of rows.  Then, if you delete one of the new options an extra line break appears between the first and second option, and the number is still off.

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      The second bug, which could be related to this, is that if you try to create a poll with more than two options and there is some kind of error in your poll (null option value, set an expire date before the end date, etc) you get a system error with the following stack trace:

       

      <code>* Status Code: 500</code>

       

      <code>* Exception Type:</code>

       

      <code>* Error Message:</code>

       

      <code>* Request URI: /poll-post.jspa</code>

       

      <code>* Stack Trace:</code>

       

       

       

       

       

        • freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)

        • freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134)

        • freemarker.core.Dot._getAsTemplateModel(Dot.java:78)

        • freemarker.core.Expression.getAsTemplateModel(Expression.java:89)

        • freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:199)

        • freemarker.core.Expression.getAsTemplateModel(Expression.java:89)

        • freemarker.core.Expression.getStringValue(Expression.java:93)

        • freemarker.core.StringBuiltins$StringBuiltIn._getAsTemplateModel(StringBuiltins.java:71)

        • freemarker.core.Expression.getAsTemplateModel(Expression.java:89)

        • freemarker.core.Expression.getStringValue(Expression.java:93)

        • freemarker.core.DollarVariable.accept(DollarVariable.java:76)

        • freemarker.core.Environment.visit(Environment.java:196)

        • freemarker.core.MixedContent.accept(MixedContent.java:92)

        • freemarker.core.Environment.visit(Environment.java:196)

        • freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)

        • freemarker.core.Environment.visit(Environment.java:351)

        • freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)

        • freemarker.core.Environment.visit(Environment.java:196)

        • freemarker.core.MixedContent.accept(MixedContent.java:92)

        • freemarker.core.Environment.visit(Environment.java:196)

        • freemarker.core.Environment.process(Environment.java:176)

        • freemarker.template.Template.process(Template.java:232)

        • com.opensymphony.webwork.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:153)

        • com.jivesoftware.community.web.webwork.FreemarkerResult.doExecute(FreemarkerResult.java:130)

        • com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:143)

        • com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:313)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:208)

        • com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)

        • com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.jivesoftware.community.web.webwork.JiveObjectLoaderInterceptor.intercept(JiveObjectLoaderInterceptor.java:55)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.jivesoftware.community.web.webwork.JiveIOCInterceptor.intercept(JiveIOCInterceptor.java:712)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.jivesoftware.community.action.LocaleInterceptor.intercept(LocaleInterceptor.java:50)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.jivesoftware.community.web.webwork.AuthInterceptor.intercept(AuthInterceptor.java:97)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.jivesoftware.community.web.webwork.JiveLoginInterceptor.intercept(JiveLoginInterceptor.java:42)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.jivesoftware.community.web.webwork.ModuleCheckInterceptor.intercept(ModuleCheckInterceptor.java:49)

        • com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

        • com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)

        • com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)

        • com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)

        • com.jivesoftware.community.web.webwork.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:53)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.community.web.filter.SetResponseCharacterEncodingFilter.doFilter(SetResponseCharacterEncodingFilter.java:62)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

        • com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.community.web.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:46)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.community.web.filter.SetRequestCharacterEncodingFilter.doFilter(SetRequestCharacterEncodingFilter.java:73)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • org.directwebremoting.servlet.DwrWebContextFilter.doFilter(DwrWebContextFilter.java:91)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.community.web.filter.MaintenanceFilter.doFilter(MaintenanceFilter.java:81)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.community.upgrade.UpgradeFilter.doFilter(UpgradeFilter.java:43)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.base.plugin.PluginFilter.doFilter(PluginFilter.java:77)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.community.web.filter.ApplicationInitializedFilter.doFilter(ApplicationInitializedFilter.java:95)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • com.jivesoftware.base.database.dao.DAOContextCleanUpFilter.doFilter(DAOContextCleanUpFilter.java:32)

        • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        • org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

        • org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

        • org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

        • org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

        • org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        • org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)

        • org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

        • org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)

        • org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

        • java.lang.Thread.run(Thread.java:619)

      <code>* freemarker.core.InvalidReferenceException:
           Expression option is undefined on line 511, column 53 in
           template/global/poll-form.ftl.</code>

       

      Thanks for looking!

       

       

      --Steve