Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-38441

SignUp Export Fails if multiple meetings are checked

    Details

    • Type: Bug
    • Status: Verified
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 12.0, 12.1, 19.0
    • Fix Version/s: 12.5, 19.0
    • Component/s: Signup
    • Labels:
      None
    • 12 status:
      Resolved
    • Test Plan:
      Hide

      Steps to reproduce

      1. Login as Instructor
      2. Access a site your are the instructor for and add the Sign Up tool
      3. Create at least two sign up meetings
      4. Access the Signup > Export page
      5. Select multiple Signup meetings and click on Export to Excel

      Expected Result : The file should contain the exports from each of the meetings

      Actual Result : Export looks like it's an export of the portal page and not signup tool (See Attached multiple-signup.xlsx)

      Show
      Steps to reproduce Login as Instructor Access a site your are the instructor for and add the Sign Up tool Create at least two sign up meetings Access the Signup > Export page Select multiple Signup meetings and click on Export to Excel Expected Result : The file should contain the exports from each of the meetings Actual Result : Export looks like it's an export of the portal page and not signup tool (See Attached multiple-signup.xlsx)

      Description

      Export fails when selecting multiple signup meetings during export.  This works in 11 before the move to use xlsx rather than xls.  Attached are two files exported from nightly trunk server.  One is a single export and the other is what I get after selecting multiple meetings.  See Testing tab for steps to reproduce.  Log from my testing on Nightly trunk (13)

      Apr 25, 2018 11:58:04 AM com.sun.faces.application.ActionListenerImpl processAction
      SEVERE: java.lang.IllegalArgumentException: Address of hyperlink must be a valid URI
      javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: Address of hyperlink must be a valid URI
      	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
      	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
      	at javax.faces.component.UICommand.broadcast(UICommand.java:387)
      	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
      	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
      	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
      	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
      	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
      	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:418)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:374)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
      	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:470)
      	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:395)
      	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:316)
      	at org.sakaiproject.signup.tool.SignupServlet.dispatch(SignupServlet.java:230)
      	at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:258)
      	at org.sakaiproject.signup.tool.SignupServlet.doPost(SignupServlet.java:110)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:418)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
      	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:470)
      	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:356)
      	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:316)
      	at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:513)
      	at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1488)
      	at org.sakaiproject.portal.charon.handlers.SiteHandler.doToolBuffer(SiteHandler.java:1227)
      	at org.sakaiproject.portal.charon.handlers.SiteHandler.bufferContent(SiteHandler.java:1061)
      	at org.sakaiproject.portal.charon.handlers.SiteHandler.doSite(SiteHandler.java:490)
      	at org.sakaiproject.portal.charon.handlers.SiteHandler.doGet(SiteHandler.java:266)
      	at org.sakaiproject.portal.charon.handlers.SiteHandler.doGet(SiteHandler.java:154)
      	at org.sakaiproject.portal.charon.handlers.WorksiteHandler.doPost(WorksiteHandler.java:69)
      	at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1172)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:467)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
      	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:677)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
      	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
      	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
      	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
      	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
      	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.IllegalArgumentException: Address of hyperlink must be a valid URI
      	at org.apache.poi.xssf.usermodel.XSSFHyperlink.validate(XSSFHyperlink.java:263)
      	at org.apache.poi.xssf.usermodel.XSSFHyperlink.setAddress(XSSFHyperlink.java:244)
      	at org.sakaiproject.signup.tool.downloadEvents.EventWorksheet.createShortVersonWorksheet(EventWorksheet.java:440)
      	at org.sakaiproject.signup.tool.downloadEvents.EventWorksheet.getEventWorkbook(EventWorksheet.java:175)
      	at org.sakaiproject.signup.tool.downloadEvents.DownloadEventBean.excelSpreadsheet(DownloadEventBean.java:292)
      	at org.sakaiproject.signup.tool.downloadEvents.DownloadEventBean.downloadExcelSpreadsheet(DownloadEventBean.java:214)
      	at org.sakaiproject.signup.tool.downloadEvents.DownloadEventBean.startXlsDownload(DownloadEventBean.java:108)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
      	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
      	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:74)
      	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
      	... 72 more
      Caused by: java.net.URISyntaxException: Illegal character in path at index 8: 'Testing Export Part 2 (1)'!A1
      	at java.net.URI$Parser.fail(URI.java:2848)
      	at java.net.URI$Parser.checkChars(URI.java:3021)
      	at java.net.URI$Parser.parseHierarchical(URI.java:3105)
      	at java.net.URI$Parser.parse(URI.java:3063)
      	at java.net.URI.<init>(URI.java:588)
      	at org.apache.poi.xssf.usermodel.XSSFHyperlink.validate(XSSFHyperlink.java:261)
      	... 86 more
      

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                ottenhoff Sam Ottenhoff
                Reporter:
                karagon Kenneth Aragon
              • Votes:
                3 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Git Source Code