You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Isaac Shabtay <is...@netvision.net.il> on 2001/10/11 22:05:07 UTC

Re: XSLT not usuable on platforms with EBCDIC character encoding (Cp037)?

Hey... another OS/390er. :-)

We're currently discussing it.
See our comments in http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2291.

    - Isaac

----- Original Message -----
From: "Tom Amiro" <To...@Sun.COM>
To: <xa...@xml.apache.org>
Sent: Thursday, October 11, 2001 8:46 PM
Subject: XSLT not usuable on platforms with EBCDIC character encoding
(Cp037)?


> For you IBMers.
>
> A bug was just reported against the version of Xalan being included
> in Sun's Java J2SE 1.4.0 beta software. I'd like to get your
> opinion on the seriousness of this problem if it were to exist.
>
> According to the author of the bug (Evgueni M. Astigueevitch):
> "The bug doesn't allow to use the JAXP XSLT on platforms with EBCDIC
character encoding,
> e.g. IBM mainframes."
>
> Basically, the error is:
>
>   javax.xml.transform.Transformer.transform() throws
java.lang.ExceptionInInitializerError
> when the default encoding is Cp037.
>
> Here's more detail on the error thrown
>
> % java -showversion RunTest
> java version "1.4.0-beta3"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b82)
> Java HotSpot(TM) Client VM (build 1.4.0-beta3-b82, mixed mode)
>
> ????????>??>?????/???_/?>??java.lang.ExceptionInInitializerError
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:135)
>         at
>
org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory
.java:127)
>         at
>
>
org.apache.xalan.transformer.TransformerImpl.createResultContentHandler(Tran
sformerImpl.java:
> 1007)
>         at
>
>
org.apache.xalan.transformer.TransformerImpl.createResultContentHandler(Tran
sformerImpl.java:
> 934)
>         at
>
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1083)
>         at
>
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1066)
>         at test.main(test.java:27)
> Caused by: java.lang.RuntimeException: The resource [ XMLEntities.res ]
could not load:
> java.lang.NumberFormatException:
??????>?????????>?????????/???????????????????????
>  XMLEntities.res         java.lang.NumberFormatException:
> ??????>?????????>?????????/???????????????????????
>         at org.apache.xalan.serialize.CharInfo.<init>(CharInfo.java:202)
>         at
org.apache.xalan.serialize.SerializerToXML.<clinit>(SerializerToXML.java:292
)
>         ... 8 more
>
> ------------------------------------RunTest.java--------------------------
> import java.io.*;
>
> public class RunTest {
>
>     public static void main(String[] argv) {
>
>         try {
>             String javaHome = System.getProperty("java.home");
>             String args[] = new String[3];
>             args[0] = javaHome + "/bin/java";
>             args[1] = "-Dfile.encoding=Cp037";
>             args[2] = "test";
>
>             Process p = Runtime.getRuntime().exec(args);
>
>             BufferedReader inp = new BufferedReader(new
>                     InputStreamReader(p.getInputStream(), "Cp037"));
>             BufferedWriter outp = new BufferedWriter(new
>                     OutputStreamWriter(System.out, "ASCII"));
>             int c;
>
>             while ((c = inp.read()) != -1) {
>                 outp.write(c);
>             }
>             outp.flush();
>
>             inp = new BufferedReader(new
InputStreamReader(p.getErrorStream(),
>                     "Cp037"));
>             outp = new BufferedWriter(new OutputStreamWriter(System.err,
>                     "ASCII"));
>
>             while ((c = inp.read()) != -1) {
>                 outp.write(c);
>             }
>             outp.flush();
>
>             p.waitFor();
>             System.exit(p.exitValue());
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
> }
> ------------------------------------test.java-----------------------------
> import javax.xml.transform.stream.StreamSource;
> import javax.xml.transform.stream.StreamResult;
> import java.io.StringReader;
> import javax.xml.transform.TransformerFactory;
> import javax.xml.transform.Transformer;
>
> public class test {
>
>     public static void main (String[] args) {
>         try {
>             String xml = "<?xml version='1.0'?><root/>";
>             String xsl = "<?xml version='1.0'?>\n"
>                        + "<xsl:stylesheet version='1.0'"
>                        + "
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n"
>                        + "  <xsl:template match='/'>\n"
>                        + "Test\n"
>                        + "  </xsl:template>\n"
>                        + "</xsl:stylesheet>\n";
>
>
>             /* Create a TransformFactory instance */
>             TransformerFactory transformerFactory =
TransformerFactory.newInstance();
>
>             StreamSource source = new StreamSource(new StringReader(xsl));
>             Transformer transformer =
transformerFactory.newTransformer(source);
>
>             transformer.transform(new StreamSource(new StringReader(xml)),
>                     new StreamResult(System.out));
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
> }
>