vgritsenko 02/01/24 19:42:29 Modified: src/java/org/apache/cocoon/components/xslt XSLTProcessorImpl.java Log: Always recycle sources. Revision Changes Path 1.6 +11 -10 xml-cocoon2/src/java/org/apache/cocoon/components/xslt/XSLTProcessorImpl.java Index: XSLTProcessorImpl.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xslt/XSLTProcessorImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- XSLTProcessorImpl.java 23 Jan 2002 00:29:16 -0000 1.5 +++ XSLTProcessorImpl.java 25 Jan 2002 03:42:29 -0000 1.6 @@ -356,16 +356,15 @@ throws TransformerException { if (this.getLogger().isDebugEnabled()) { - getLogger().debug("XSLTProcessorImpl: resolve(href = " + href + getLogger().debug("resolve(href = " + href + ", base = " + base + "); resolver = " + resolver); } + Source xslSource = null; try { - Source xslSource; if (href.indexOf(":") > 1) { xslSource = resolver.resolve(href); - } - else { + } else { // patch for a null pointer passed as base if (base == null) throw new IllegalArgumentException("Null pointer passed as base"); @@ -377,25 +376,25 @@ // this should never occur as the base should // always be protocol:/.... return null; // we can't resolve this - } - else { + } else { xslSource = resolver.resolve(new StringBuffer(base.substring(0, lastPathElementPos)) .append("/").append(href).toString()); } - } - else { + } else { File parent = new File(base.substring(5)); File parent2 = new File(parent.getParentFile(), href); xslSource = resolver.resolve(parent2.toURL().toExternalForm()); } } + InputSource is = xslSource.getInputSource(); if (this.getLogger().isDebugEnabled()) { getLogger().debug("xslSource = " + xslSource + ", system id = " + is.getSystemId()); } - return new StreamSource(is.getByteStream(), - is.getSystemId()); + + return new StreamSource(is.getByteStream(), is.getSystemId()); + } catch (ResourceNotFoundException rnfe) { // to obtain the same behaviour as when the resource is // transformed by the XSLT Transformer we should return null here. @@ -408,6 +407,8 @@ throw new TransformerException(se); } catch (ProcessingException pe) { throw new TransformerException(pe); + } finally { + if (xslSource != null) xslSource.recycle(); } }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]