Yes please, and attach your patch (it helps to track things).
Btw, do you have a simple test case that would demonstrate the problem
/ solution ?

Cheers,
Guillaume Nodet

On 4/27/06, Juergen Mayrbaeurl <[EMAIL PROTECTED]> wrote:
>
> I think I've a solution for the second problem.
>
> In SourceTransformer.toDOMSourceFromStream():
>
>     public DOMSource toDOMSourceFromStream(StreamSource source) throws
> ParserConfigurationException, IOException,
>             SAXException {
>         DocumentBuilder builder = createDocumentBuilder();
>         String systemId = source.getSystemId();
>         Document document = null;
>         InputStream inputStream = source.getInputStream();
>         if (inputStream != null) {
>             document = builder.parse(inputStream, systemId);
>         }
>         else {
>             Reader reader = source.getReader();
>             if (reader != null) {
>                 document = builder.parse(new InputSource(reader));
>             }
>             else {
>                 throw new IOException("No input stream or reader
> available");
>             }
>         }
>         return new DOMSource(document, systemId);
>     }
>
> Change to:
>
>     public DOMSource toDOMSourceFromStream(StreamSource source) throws
> ParserConfigurationException, IOException,
>             SAXException {
>         DocumentBuilder builder = createDocumentBuilder();
>         String systemId = source.getSystemId();
>         Document document = null;
>         InputStream inputStream = source.getInputStream();
>         if (inputStream != null) {
>             InputSource inputsource = new InputSource(inputStream);
>             inputsource.setSystemId(systemId);
>             inputsource.setEncoding(Charset.defaultCharset().name());
>
>             document = builder.parse(inputsource);
>         }
>         else {
>             Reader reader = source.getReader();
>             if (reader != null) {
>                 document = builder.parse(new InputSource(reader));
>             }
>             else {
>                 throw new IOException("No input stream or reader
> available");
>             }
>         }
>         return new DOMSource(document, systemId);
>     }
>
> The block starting with "if (inputStream != null) {" was changed. It no
> longers calls the DocumentBuilder.parse() method with the inputstream but
> with an input source that has its encoding explicitly set to the default
> character set encoding.
>
> The code above only works with J2SE 5, because it's using the
> Charset.defaultCharset() method, which was introduced with J2SE 5. To make
> it usable with older J2SE versions, you should add a static member to the
> class SourceTransformer, which holds the name of the default character set
> encoding and is initialized at class loading. (from
> http://www.rgagnon.com/javadetails/java-0505.html):
>
> public class Hello {
>  public static void main(String args[]) throws Exception{
>   // not crossplateform safe
>   System.out.println(System.getProperty("file.encoding"));
>   // jdk1.4
>   System.out.println(
>      new java.io.OutputStreamWriter(
>         new java.io.ByteArrayOutputStream()).getEncoding()
>      );
>   // jdk1.5
>   System.out.println(java.nio.charset.Charset.defaultCharset().name());
>   }
> }
>
> This kind of calling a DocumentBuilder should be used overall in ServiceMix.
>
> BTW: What about the JIRA? Should I raise one?
>
> Kind regards
> Juergen
> --
> View this message in context: 
> http://www.nabble.com/NamespaceContext-in-XPath-based-content-router-t1512305.html#a4121021
> Sent from the ServiceMix - User forum at Nabble.com.
>
>

Reply via email to