Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-1778

Template parsing dependent on JVM default charset

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 5.3
    • 5.4
    • tapestry-core
    • None

    Description

      This is my first experience with JIRA, so apologies if it is not formatted properly. I raised this topic on the tapestry-users mailing list and was asked by a couple of people there to create an issue here.

      internal.services.XMLTokenStream's openStream method contains the following lines:

      InputStreamReader rawReader = new InputStreamReader(rawStream);
      ...
      PrintWriter writer = new PrintWriter(bos);

      Both of these implicitly rely on the default JVM charset. This poses a significant problem for non-ASCII text in templates on Google App Engine, where the default is "US-ASCII". In the interests of robustness, I think it would be nice if Tapestry was able to eliminate any reliance on default charsets. I am not confident enough in my understanding of Tapestry internals to know how to appropriately retrieve symbol properties (such as "tapestry.charset") via the IoC system in internal service implementations, but I have verified that explicitly specifying "UTF-8" as follows resolved my problem:

      InputStreamReader rawReader = new InputStreamReader(rawStream, "UTF-8");
      ...
      PrintWriter writer = new PrintWriter( new OutputStreamWriter(bos, "UTF-8") );

      Attachments

        1. charset_5_3_5.patch
          9 kB
          Takeshi Sugita

        Issue Links

          Activity

            People

              jkemnade Jochen Kemnade
              intrigue Robert Coie
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: