You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by br...@apache.org on 2003/05/20 22:53:22 UTC

cvs commit: cocoon-2.0/src/java/org/apache/cocoon/transformation XIncludeTransformer.java

bruno       2003/05/20 13:53:22

  Modified:    src/java/org/apache/cocoon/transformation
                        XIncludeTransformer.java
  Log:
  in setDocumentLocator, check that systemid is not null before using it.
  This fixes bug 8379.
  
  Revision  Changes    Path
  1.2       +16 -13    cocoon-2.0/src/java/org/apache/cocoon/transformation/XIncludeTransformer.java
  
  Index: XIncludeTransformer.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.0/src/java/org/apache/cocoon/transformation/XIncludeTransformer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XIncludeTransformer.java	9 Mar 2003 00:03:24 -0000	1.1
  +++ XIncludeTransformer.java	20 May 2003 20:53:22 -0000	1.2
  @@ -182,18 +182,21 @@
                   getLogger().debug("setDocumentLocator called " + locator.getSystemId());
               }
   
  -            base_xmlbase_uri = this.resolver.resolve(locator.getSystemId());
  +            // When using SAXON to serialize a DOM tree to SAX, a locator is passed with a "null" system id
  +            if (locator.getSystemId() != null) {
  +                base_xmlbase_uri = this.resolver.resolve(locator.getSystemId());
   
  -            // If url ends with .xxx then truncate to dir
  -            if (base_xmlbase_uri.getSystemId().lastIndexOf('.') > base_xmlbase_uri.getSystemId().lastIndexOf('/')) {
  -               String uri = base_xmlbase_uri.getSystemId().substring(0,base_xmlbase_uri.getSystemId().lastIndexOf('/')+1);
  -               base_xmlbase_uri.recycle();
  -               base_xmlbase_uri = null;
  -               base_xmlbase_uri = this.resolver.resolve(uri);
  -            }
  +                // If url ends with .xxx then truncate to dir
  +                if (base_xmlbase_uri.getSystemId().lastIndexOf('.') > base_xmlbase_uri.getSystemId().lastIndexOf('/')) {
  +                   String uri = base_xmlbase_uri.getSystemId().substring(0,base_xmlbase_uri.getSystemId().lastIndexOf('/')+1);
  +                   base_xmlbase_uri.recycle();
  +                   base_xmlbase_uri = null;
  +                   base_xmlbase_uri = this.resolver.resolve(uri);
  +                }
   
  -            if (current_xmlbase_uri == null) {
  -               current_xmlbase_uri = base_xmlbase_uri;
  +                if (current_xmlbase_uri == null) {
  +                   current_xmlbase_uri = base_xmlbase_uri;
  +                }
               }
   
           } catch (Exception e) {