Details

      Description

      Portal is using a really old version of TrueZip (classified as obsolete on their site) which has this bug: https://java.net/jira/browse/TRUEZIP-150. If a RuntimeException occurs while it is reading the InputStream, the thread will just get stuck there.

      "ajp-apr-8010-exec-49" (main), priority=5, id=34612, state=WAITING
      	java.lang.Object.wait(Native Method)
      	java.lang.Object.wait(Object.java:503)
      	de.schlichtherle.io.Streams.cat(Streams.java:160)
      	de.schlichtherle.io.File.cat(File.java:4349)
      	com.liferay.portal.zip.ZipWriterImpl.addEntry(ZipWriterImpl.java:103)
      	com.liferay.sync.servlet.DownloadServlet.sendZipFile(DownloadServlet.java:550)
      	com.liferay.sync.servlet.DownloadServlet.service(DownloadServlet.java:123)
      

      The fix on TrueZip's end is to catch all exceptions instead of just the IOException (the version we are using). Until we upgrade, we can temporarily workaround this issue by wrapping all exceptions into IOExceptions.

      This is the the related code block from TrueZip 6.7:

                          try {
                              read = _in.read(buf, 0, buf.length);
                          } catch (IOException ex) {
                              exception = new InputIOException(ex);
                              read = -1;
                          }
      

        Attachments

          Activity

            People

            • Assignee:
              shinn.lok Shinn Lok
              Reporter:
              shinn.lok Shinn Lok
              Participants of an Issue:
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                3 years, 22 weeks, 4 days ago

                Packages

                Version Package
                Desktop-3.1.0 GA1
                Connector-3.1.0