You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sa...@apache.org on 2002/08/12 21:31:32 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java

santiagopg    2002/08/12 12:31:32

  Modified:    java/src/org/apache/xalan/xsltc/dom LoadDocument.java
  Log:
  Use unmodified URI when retrieving the document via the DOM cache.
  
  Revision  Changes    Path
  1.12      +23 -14    xml-xalan/java/src/org/apache/xalan/xsltc/dom/LoadDocument.java
  
  Index: LoadDocument.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/LoadDocument.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- LoadDocument.java	31 Oct 2001 07:29:39 -0000	1.11
  +++ LoadDocument.java	12 Aug 2002 19:31:32 -0000	1.12
  @@ -62,8 +62,9 @@
   
   package org.apache.xalan.xsltc.dom;
   
  -import java.io.File;
   import java.net.URL;
  +import java.io.File;
  +import java.io.FileNotFoundException;
   
   import javax.xml.parsers.SAXParser;
   import javax.xml.parsers.SAXParserFactory;
  @@ -90,22 +91,24 @@
        */
       public static NodeIterator document(String uri, String base,
   					AbstractTranslet translet, DOM dom)
  -	throws Exception {
  -
  +	throws Exception 
  +    {
  +	final String originalUri = uri;
   	MultiDOM multiplexer = (MultiDOM)dom;
   
   	// Return an empty iterator if the URI is clearly invalid
   	// (to prevent some unncessary MalformedURL exceptions).
  -	if ((uri == null) || (uri.equals("")))
  -	    return(new SingletonIterator(DOM.NULL,true));
  +	if (uri == null || uri.equals("")) {
  +	    return new SingletonIterator(DOM.NULL,true);
  +	}
   
   	// Prepend URI base to URI (from context)
  -	if ((base != null) && (!base.equals(""))) {
  -	    if ((!uri.startsWith(base)) &&     // unless URI contains base
  -		(!uri.startsWith("/")) &&      // unless URI is abs. file path
  -		(!uri.startsWith("http:/")) && // unless URI is abs. http URL
  -		(!uri.startsWith("file:/"))) { // unless URI is abs. file URL
  -		uri = base+uri;
  +	if (base != null && !base.equals("")) {
  +	    if (!uri.startsWith(base)     &&   // unless URI contains base
  +		!uri.startsWith("/")      &&   // unless URI is abs. file path
  +		!uri.startsWith("http:/") &&   // unless URI is abs. http URL
  +		!uri.startsWith("file:/")) {   // unless URI is abs. file URL
  +		uri = base + uri;
   	    }
   	}
   
  @@ -128,7 +131,11 @@
   	mask = multiplexer.nextMask(); // peek
   
   	if (cache != null) {
  -	    newdom = cache.retrieveDocument(uri, mask, translet);
  +	    newdom = cache.retrieveDocument(originalUri, mask, translet);
  +	    if (newdom == null) {
  +		final Exception e = new FileNotFoundException(originalUri);
  +		throw new TransletException(e);
  +	    }
   	}
   	else {
   	    // Parse the input document and construct DOM object
  @@ -247,8 +254,10 @@
   		throw new IllegalArgumentException(err);
   	    }
   	}
  +	catch (TransletException e) {
  +	    throw e;
  +	}
   	catch (Exception e) {
  -	    e.printStackTrace();
   	    throw new TransletException(e);
   	}
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org