bruno       2003/08/13 01:44:54

  Modified:    src/blocks/batik/java/org/apache/cocoon/xml/dom
                        SVGBuilder.java
  Log:
  Set base URI to http://localhost/ if setDocumentLocator wasn't called.
  
  Revision  Changes    Path
  1.5       +16 -6     
cocoon-2.1/src/blocks/batik/java/org/apache/cocoon/xml/dom/SVGBuilder.java
  
  Index: SVGBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/batik/java/org/apache/cocoon/xml/dom/SVGBuilder.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SVGBuilder.java   7 May 2003 19:15:02 -0000       1.4
  +++ SVGBuilder.java   13 Aug 2003 08:44:54 -0000      1.5
  @@ -52,6 +52,8 @@
   
   import org.apache.avalon.framework.logger.LogEnabled;
   import org.apache.avalon.framework.logger.Logger;
  +import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.excalibur.pool.Recyclable;
   
   import org.apache.batik.dom.svg.SAXSVGDocumentFactory;
   import org.apache.batik.dom.svg.SVGDOMImplementation;
  @@ -72,7 +74,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
    * @version CVS $Id$
    */
  -public class SVGBuilder extends SAXSVGDocumentFactory implements XMLConsumer, 
LogEnabled {
  +public class SVGBuilder extends SAXSVGDocumentFactory implements XMLConsumer, 
LogEnabled, Recyclable {
       protected Logger log;
   
       protected Locator locator;
  @@ -148,15 +150,18 @@
               super.endDocument();
   
               // FIXME: Hack.
  +            URL baseURL = null;
               try {
                   if (this.locator != null) {
  -                    
((org.apache.batik.dom.svg.SVGOMDocument)super.document).setURLObject(new 
URL(this.locator.getSystemId()));
  +                    baseURL = new URL(this.locator.getSystemId());
                   } else {
  -                    getLogger().warn("setDocumentLocator was not called, URI 
resolution will not work");
  +                    baseURL = new URL("http://localhost/";);
  +                    getLogger().warn("setDocumentLocator was not called, will use 
http://localhost/ as base URI");
                   }
  +                
((org.apache.batik.dom.svg.SVGOMDocument)super.document).setURLObject(baseURL);
               } catch (MalformedURLException e) {
  -                getLogger().warn("Unable to set document base URI to " + 
this.locator.getSystemId(), e);
  -                
((org.apache.batik.dom.svg.SVGOMDocument)super.document).setURLObject(new 
URL("http://xml.apache.org/";));
  +                getLogger().warn("Unable to set document base URI to " + baseURL + 
", will default to http://localhost/";, e);
  +                
((org.apache.batik.dom.svg.SVGOMDocument)super.document).setURLObject(new 
URL("http://localhost/";));
               }
   
               notify(super.document);
  @@ -175,4 +180,9 @@
        */
       protected void notify(Document doc) throws SAXException {
       }
  +
  +    public void recycle() {
  +        locator = null;
  +    }
  +
   }
  
  
  

Reply via email to