Uploaded image for project: 'ZK Spreadsheet'
  1. ZK Spreadsheet
  2. ZSS-644

Fail to export to XLSX format when the book has a hyperlink with invalid URI

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 3.5.0 RC
    • Fix Version/s: 3.5.0
    • Component/s: ZSS Component
    • Labels:
      None

      Description

      Reproducing Step:

      1. run the test case zss.test \ org.zkoss.zss.model.importer.ExcelImporterTest

      failed on [Export XLSX] D:\git\zkspreadsheet\zss.test\src\test\java\Book10.xls
      java.lang.IllegalArgumentException : Address of hyperlink must be a valid URI
      at org.zkoss.poi.xssf.usermodel.XSSFHyperlink.validate( XSSFHyperlink.java:212)
      at org.zkoss.poi.xssf.usermodel.XSSFHyperlink.setAddress( XSSFHyperlink.java:194)
      at org.zkoss.zss.range.impl.imexp.AbstractExcelExporter.exportCell( AbstractExcelExporter.java:261)
      at org.zkoss.zss.range.impl.imexp.AbstractExcelExporter.exportRow( AbstractExcelExporter.java:207)
      at org.zkoss.zss.range.impl.imexp.AbstractExcelExporter.exportRowColumn( AbstractExcelExporter.java:174)
      at org.zkoss.zss.range.impl.imexp.AbstractExcelExporter.export( AbstractExcelExporter.java:90)
      at org.zkoss.zss.range.impl.imexp.AbstractExporter.export( AbstractExporter.java:37)
      at org.zkoss.zss.model.importer.ExcelImporterTest.importExport( ExcelImporterTest.java:66)
      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 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run( ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively( FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate( InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271 )
      at org.junit.runners.BlockJUnit4ClassRunner.runChild( BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild( BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238 )
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63 )
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236 )
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53 )
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229 )
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309 )
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run( JUnit4TestReference.java:50)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run( TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run( RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( RemoteTestRunner.java:197)
      Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 2: C:\Documents and Settings\henrichen\My Documents\search-set.pdf
      at java.net.URI$Parser.fail( URI.java:2809 )
      at java.net.URI$Parser.checkChars( URI.java:2982 )
      at java.net.URI$Parser.parse( URI.java:3019 )
      at java.net.URI.<init>( URI.java:578 )
      at org.zkoss.poi.xssf.usermodel.XSSFHyperlink.validate( XSSFHyperlink.java:210)
      ... 30 more

        Activity

        Hide
        hawk hawk added a comment -

        Root Cause:

        XLSX only accept valid URI, C:\Documents and Settings\henrichen\My Documents\search-set.pdf is not a valid URI.

        Solution:

        do not export a hyperlink that we fail to set its attribute.

        Show
        hawk hawk added a comment - Root Cause: XLSX only accept valid URI, C:\Documents and Settings\henrichen\My Documents\search-set.pdf is not a valid URI. Solution: do not export a hyperlink that we fail to set its attribute.

          People

          • Assignee:
            hawk hawk
            Reporter:
            hawk hawk
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: