Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-29346

ImageFilterServlet re-throws java.net.SocketException: Broken pipe

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Fixed
    • 5.2.3, 5.3
    • None
    • Partially fixed in ImageEffectsPlugin-1.1.5
      Fully fixed in ImageEffectsPlugin-1.1.7
    • We collect Confluence feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      NOTE: This suggestion is for Confluence Server. Using Confluence Cloud? See the corresponding suggestion.

      The ImageFilterServlet writes to the HttpServletResponse's OutputStream in the end. One possible exception could be that the socket gets closed on the client-side (e.g. user closes browser tab) leading to a ClientAbortException: java.net.SocketException: Broken pipe being re-thrown as -java.lang.RuntimeException, leading to a full stack trace being written out to the log. The ClientAbortException is implementation specific, but the part writing to the OutputStream could still stand in its isolated try-catch examining if the root cause is a SocketException of that type and thus ignore it.

      Steps to reproduce:

      1. Put a breakpoint on l216 of the ImageFilterServlet (ImageEffectsPlugin 1.1.4)
      2. Open the Prettify the page with an image (step 4 of 9) page of the demo space in the editor, select one of the images and click on Properties in the property panel
      3. Wait for the break, and close the tab, you'll get a trace like the one attached

      Attachments

        Issue Links

          Activity

            People

              fakraemer fabs
              fakraemer fabs
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: