Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-2338

Problem in the Configuration Render

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: webconsole-3.0.0
    • Fix Version/s: webconsole-3.1.0
    • Component/s: Web Console
    • Labels:
      None
    • Environment:
      Skelmir CEE-J 4 VM

      Description

      With some JVM implementation like Skelmir CEE-J, the configurations will not be printed correctly and the server will generate internal server error.

      In the log there is a long stack trace:
      — cut here –
      Wed, 12 May 2010 13:42:40 GMT 8 ERROR [HTTP] Problem while making answer to request /system/console/config/Configurations.nfo from client address null
      java.lang.StackOverflowError
      at java/io/PrintWriter.write (Unknown Source, bco=33)
      at java/io/PrintStream.write (Unknown Source, bco=88)
      at java/io/PrintStream.writeInternal (Unknown Source, bco=20)
      at java/io/PrintStream.print (Unknown Source, bco=5)
      at java/io/PrintStream.println (Unknown Source, bco=9)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.write (ConfigurationRender.java:508)
      at java/io/PrintWriter.write (Unknown Source, bco=25)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.writeFiltered (ConfigurationRender.java:540)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.write (ConfigurationRender.java:510)
      at java/io/PrintWriter.write (Unknown Source, bco=25)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.writeFiltered (ConfigurationRender.java:540)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.write (ConfigurationRender.java:510)
      at java/io/PrintWriter.write (Unknown Source, bco=25)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.writeFiltered (ConfigurationRender.java:540)
      at org/apache/felix/webconsole/internal/misc/ConfigurationRender$HtmlConfigurationWriter.write (ConfigurationRender.java:510)
      at java/io/PrintWriter.write (Unknown Source, bco=25)
      — cut here –

      These are the first few lines only. Obviously the different implementation of PrintWriter makes an endless loop between methods.

      I'm attaching a patch that:
      1. fixes the above problem
      2. optimizes the writer by escaping the symbols on the fly one by one (writing char by char is not a problem, because the Servet output is already buffered)
      3. because of 2 it doesn't escape the string /using WebConsoleUtil.escapeHtml()/ and then write escaped one; and doesn't create a new StringBuffer + String objects. This reduces the used temporary memory and should have also influence on performance.

        Attachments

        1. config-render-skelmir.patch
          4 kB
          Valentin Valchev

          Activity

            People

            • Assignee:
              v_valchev Valentin Valchev
              Reporter:
              v_valchev Valentin Valchev
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: