Uploaded image for project: 'WSS4J'
  1. WSS4J
  2. WSS-513

Fails to parse Timestamp headers in Thai locale

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.6.16
    • Fix Version/s: 2.0.2, 1.6.17
    • Component/s: WSS4J Core
    • Labels:
      None
    • Environment:
      Java runtimes running under the th_TH locale
      We experienced it on Windows but it should be OS independent.

      Description

      In Thai, they seem to be using the Buddhist calendar and JRE defaults to using it. And the SimpleDateFormatter ctor which takes only a pattern uses the default locale to see which calendar system to use.
      http://docs.oracle.com/javase/7/docs/technotes/guides/intl/calendar.doc.html
      http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

      You can see how the API works like this:
      >jrunscript -J-Duser.language=th -J-Duser.country=TH -e "println( new java.text.SimpleDateFormat('yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'').parse('2014-01-01T00:00:00.000Z').toString() )"
      Tue Jan 01 00:00:00 JST 1471

      On the other hand, org.apache.ws.security.util.XmlSchemaDateFormat.parse() always expects the Gregorian calendar is used. If that is the case, it should have configured the formatter with a fixed locale regardless of the default locale.

        Attachments

          Activity

            People

            • Assignee:
              coheigea Colm O hEigeartaigh
              Reporter:
              kamishim Kamishima, Kiyoshi
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: