vgritsenko 01/08/21 20:57:59
Modified: src/org/apache/cocoon Tag: cocoon_20_branch Cocoon.java
Main.java ProcessingException.java
src/org/apache/cocoon/acting Tag: cocoon_20_branch
AbstractComplementaryConfigurableAction.java
ResourceExistsAction.java
src/org/apache/cocoon/components/language/generator Tag:
cocoon_20_branch ProgramGeneratorImpl.java
src/org/apache/cocoon/components/language/markup Tag:
cocoon_20_branch AbstractMarkupLanguage.java
src/org/apache/cocoon/components/language/markup/xsp Tag:
cocoon_20_branch XSPFormValidatorHelper.java
src/org/apache/cocoon/components/source Tag:
cocoon_20_branch SitemapSource.java URLSource.java
src/org/apache/cocoon/environment Tag: cocoon_20_branch
Source.java
src/org/apache/cocoon/generation Tag: cocoon_20_branch
DirectoryGenerator.java FileGenerator.java
HTMLGenerator.java JspGenerator.java
PhpGenerator.java ScriptGenerator.java
ServerPagesGenerator.java
src/org/apache/cocoon/reading Tag: cocoon_20_branch
ResourceReader.java
src/org/apache/cocoon/sitemap Tag: cocoon_20_branch
ContentAggregator.java Handler.java
src/org/apache/cocoon/transformation Tag: cocoon_20_branch
CIncludeTransformer.java I18nTransformer.java
TraxTransformer.java XTTransformer.java
Log:
recycling Source
Revision Changes Path
No revision
No revision
1.9.2.14 +3 -1 xml-cocoon2/src/org/apache/cocoon/Cocoon.java
Index: Cocoon.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/Cocoon.java,v
retrieving revision 1.9.2.13
retrieving revision 1.9.2.14
diff -u -r1.9.2.13 -r1.9.2.14
--- Cocoon.java 2001/08/20 20:24:33 1.9.2.13
+++ Cocoon.java 2001/08/22 03:57:57 1.9.2.14
@@ -51,7 +51,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
(Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.9.2.13 $ $Date: 2001/08/20 20:24:33 $
+ * @version CVS $Revision: 1.9.2.14 $ $Date: 2001/08/22 03:57:57 $
*/
public class Cocoon extends AbstractLoggable implements ThreadSafe,
Component, Initializable, Disposable, Modifiable, Processor, Contextualizable {
/** The application context */
@@ -336,6 +336,8 @@
public void dispose() {
this.componentManager.dispose();
+ if (this.configurationFile != null)
+ this.configurationFile.recycle();
this.disposed = true;
}
1.4.2.10 +4 -3 xml-cocoon2/src/org/apache/cocoon/Main.java
Index: Main.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/Main.java,v
retrieving revision 1.4.2.9
retrieving revision 1.4.2.10
diff -u -r1.4.2.9 -r1.4.2.10
--- Main.java 2001/08/20 16:19:00 1.4.2.9
+++ Main.java 2001/08/22 03:57:57 1.4.2.10
@@ -50,7 +50,7 @@
* Command line entry point.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.4.2.9 $ $Date: 2001/08/20 16:19:00 $
+ * @version CVS $Revision: 1.4.2.10 $ $Date: 2001/08/22 03:57:57 $
*/
public class Main {
@@ -520,8 +520,9 @@
final HashMap translatedLinks = new HashMap();
final Iterator i = this.getLinks(deparameterizedURI,
parameters).iterator();
while (i.hasNext()) {
- String relativeLink = (String) i.next();
+ String link = (String) i.next();
// Fix relative links starting with "?"
+ String relativeLink = link;
if(relativeLink.startsWith("?")){
relativeLink = pageURI + relativeLink;
}
@@ -536,7 +537,7 @@
}
final String translatedRelativeLink = NetUtils.relativize(path,
translatedAbsoluteLink);
- translatedLinks.put(relativeLink, translatedRelativeLink);
+ translatedLinks.put(link, translatedRelativeLink);
}
// Process URI
1.1.1.1.2.3 +2 -2
xml-cocoon2/src/org/apache/cocoon/ProcessingException.java
Index: ProcessingException.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/ProcessingException.java,v
retrieving revision 1.1.1.1.2.2
retrieving revision 1.1.1.1.2.3
diff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3
--- ProcessingException.java 2001/08/20 14:07:24 1.1.1.1.2.2
+++ ProcessingException.java 2001/08/22 03:57:57 1.1.1.1.2.3
@@ -18,7 +18,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
* (Apache Software Foundation, Exoffice Technologies)
- * @version CVS $Revision: 1.1.1.1.2.2 $ $Date: 2001/08/20 14:07:24 $
+ * @version CVS $Revision: 1.1.1.1.2.3 $ $Date: 2001/08/22 03:57:57 $
*/
public class ProcessingException extends CascadingException {
@@ -50,7 +50,7 @@
StringBuffer s = new StringBuffer();
s.append(super.toString());
if(getCause()!=null) {
- s.append(':');
+ s.append(": ");
s.append(getCause().toString());
}
return s.toString();
No revision
No revision
1.3.2.6 +17 -16
xml-cocoon2/src/org/apache/cocoon/acting/AbstractComplementaryConfigurableAction.java
Index: AbstractComplementaryConfigurableAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/AbstractComplementaryConfigurableAction.java,v
retrieving revision 1.3.2.5
retrieving revision 1.3.2.6
diff -u -r1.3.2.5 -r1.3.2.6
--- AbstractComplementaryConfigurableAction.java 2001/08/20 14:07:24
1.3.2.5
+++ AbstractComplementaryConfigurableAction.java 2001/08/22 03:57:58
1.3.2.6
@@ -26,7 +26,7 @@
* effective. The name of the root configuration element is irrelevant.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
- * @version CVS $Revision: 1.3.2.5 $ $Date: 2001/08/20 14:07:24 $
+ * @version CVS $Revision: 1.3.2.6 $ $Date: 2001/08/22 03:57:58 $
*/
public abstract class AbstractComplementaryConfigurableAction extends
ConfigurableComposerAction {
private static Map configurations = new HashMap();
@@ -70,27 +70,28 @@
sourceHandler = (SourceHandler)
this.manager.lookup(SourceHandler.ROLE);
resource = sourceHandler.getSource(null, descriptor);
- if (conf == null || conf.lastModified <
resource.getLastModified()) {
- getLogger().debug("(Re)Loading " + descriptor);
- if (conf == null)
- conf = new ConfigurationHelper();
+ if (conf == null || conf.lastModified <
resource.getLastModified()) {
+ getLogger().debug("(Re)Loading " + descriptor);
+ if (conf == null)
+ conf = new ConfigurationHelper();
- SAXConfigurationHandler builder = new
SAXConfigurationHandler();
- resource.stream(builder);
+ SAXConfigurationHandler builder = new
SAXConfigurationHandler();
+ resource.stream(builder);
- conf.lastModified = resource.getLastModified();
- conf.configuration = builder.getConfiguration();
+ conf.lastModified = resource.getLastModified();
+ conf.configuration = builder.getConfiguration();
- this.cacheConfiguration(descriptor, conf);
- } else {
- getLogger().debug("Using cached configuration for " +
descriptor);
- }
- } catch (Exception e) {
- getLogger().error("Could not configure Database mapping
environment", e);
+ this.cacheConfiguration(descriptor, conf);
+ } else {
+ getLogger().debug("Using cached configuration for "
+ descriptor);
+ }
+ } catch (Exception e) {
+ getLogger().error("Could not configure Database mapping
environment", e);
throw new ConfigurationException("Error trying to load
configurations for resource: " + (resource == null ? "null" :
resource.getSystemId()));
} finally {
+ if (resource != null) resource.recycle();
if (sourceHandler != null)
this.manager.release((Component) sourceHandler);
- }
+ }
} else {
getLogger().debug("Using fixed cached configuration for " +
descriptor);
}
1.5.2.4 +7 -2
xml-cocoon2/src/org/apache/cocoon/acting/ResourceExistsAction.java
Index: ResourceExistsAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/ResourceExistsAction.java,v
retrieving revision 1.5.2.3
retrieving revision 1.5.2.4
diff -u -r1.5.2.3 -r1.5.2.4
--- ResourceExistsAction.java 2001/08/20 14:07:25 1.5.2.3
+++ ResourceExistsAction.java 2001/08/22 03:57:58 1.5.2.4
@@ -9,6 +9,7 @@
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.environment.Redirector;
+import org.apache.cocoon.environment.Source;
import org.apache.cocoon.environment.SourceResolver;
import java.util.Collections;
@@ -21,18 +22,22 @@
* null otherwise. It has only been tested with context urls.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Donald Ball</a>
- * @version CVS $Revision: 1.5.2.3 $ $Date: 2001/08/20 14:07:25 $
+ * @version CVS $Revision: 1.5.2.4 $ $Date: 2001/08/22 03:57:58 $
*/
public class ResourceExistsAction extends ComposerAction {
public Map act(Redirector redirector, SourceResolver resolver, Map
objectModel, String source, Parameters parameters) throws Exception {
HashMap results = new HashMap();
String urlstring = parameters.getParameter("url",null);
+ Source src = null;
try {
- resolver.resolve(urlstring).getInputStream();
+ src = resolver.resolve(urlstring);
+ src.getInputStream();
} catch (Exception e) {
getLogger().debug("ResourceExistsAction: exception: ",e);
return null;
+ } finally {
+ if (src != null) src.recycle();
}
return Collections.unmodifiableMap(results);
}
No revision
No revision
1.5.2.14 +128 -120
xml-cocoon2/src/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
Index: ProgramGeneratorImpl.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java,v
retrieving revision 1.5.2.13
retrieving revision 1.5.2.14
diff -u -r1.5.2.13 -r1.5.2.14
--- ProgramGeneratorImpl.java 2001/08/20 14:07:26 1.5.2.13
+++ ProgramGeneratorImpl.java 2001/08/22 03:57:58 1.5.2.14
@@ -43,7 +43,7 @@
/**
* The default implementation of <code>ProgramGenerator</code>
* @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
- * @version CVS $Revision: 1.5.2.13 $ $Date: 2001/08/20 14:07:26 $
+ * @version CVS $Revision: 1.5.2.14 $ $Date: 2001/08/22 03:57:58 $
*/
public class ProgramGeneratorImpl extends AbstractLoggable
implements ProgramGenerator, Contextualizable, Composable, Configurable,
ThreadSafe, Disposable {
@@ -148,99 +148,45 @@
throws Exception {
Source source = resolver.resolve(fileName);
-
- // Set filenames
- StringBuffer contextFilename = new
StringBuffer(this.rootPackage.replace('.', File.separatorChar));
- contextFilename.append(File.separator);
- String id = source.getSystemId();
- if(id.startsWith(this.contextDir)) {
- // VG: File is located under contextDir, using relative file name
- contextFilename.append(id.substring(this.contextDir.length()));
- } else {
- // VG: File is located outside of contextDir, using systemId
- getLogger().debug("Loading from external source " + id);
- contextFilename.append(id);
- }
- String normalizedName =
IOUtils.normalizedFilename(contextFilename.toString());
-
- // Ensure no 2 requests for the same file overlap
- Class program = null;
- CompiledComponent programInstance = null;
-
- // Attempt to load program object from cache
try {
- programInstance = (CompiledComponent) select(normalizedName);
- } catch (Exception e) {
- getLogger().debug("The instance was not accessible, creating it
now.");
- }
-
- if ((programInstance == null) && this.preload) {
- String className = normalizedName.replace(File.separatorChar,
'.');
-
+ // Set filenames
+ StringBuffer contextFilename = new
StringBuffer(this.rootPackage.replace('.', File.separatorChar));
+ contextFilename.append(File.separator);
+ String id = source.getSystemId();
+ if(id.startsWith(this.contextDir)) {
+ // VG: File is located under contextDir, using relative file
name
+
contextFilename.append(id.substring(this.contextDir.length()));
+ } else {
+ // VG: File is located outside of contextDir, using systemId
+ getLogger().debug("Loading from external source " + id);
+ contextFilename.append(id);
+ }
+ String normalizedName =
IOUtils.normalizedFilename(contextFilename.toString());
+
+ // Ensure no 2 requests for the same file overlap
+ Class program = null;
+ CompiledComponent programInstance = null;
+
+ // Attempt to load program object from cache
try {
- program = this.classManager.loadClass(className);
- this.addCompiledComponent(newManager, normalizedName,
program);
programInstance = (CompiledComponent) select(normalizedName);
} catch (Exception e) {
- getLogger().debug("The class was not preloaded");
+ getLogger().debug("The instance was not accessible, creating
it now.");
}
- }
-
- if (programInstance == null) {
- MarkupLanguage markupLanguage = null;
- ProgrammingLanguage programmingLanguage = null;
- try {
- // Get markup and programming languages
- markupLanguage =
(MarkupLanguage)this.markupSelector.select(markupLanguageName);
- programmingLanguage =
(ProgrammingLanguage)this.languageSelector.select(programmingLanguageName);
- programmingLanguage.setLanguageName(programmingLanguageName);
- program = this.generateResource(newManager, fileName,
normalizedName, markupLanguage, programmingLanguage, resolver);
- } catch (LanguageException le) {
- getLogger().debug("Language Exception", le);
- throw new ProcessingException("Language Exception", le);
- } finally {
- if (this.markupSelector != null) {
- this.markupSelector.release(markupLanguage);
- }
-
- if (this.languageSelector != null) {
- this.languageSelector.release(programmingLanguage);
+
+ if ((programInstance == null) && this.preload) {
+ String className =
normalizedName.replace(File.separatorChar, '.');
+
+ try {
+ program = this.classManager.loadClass(className);
+ this.addCompiledComponent(newManager, normalizedName,
program);
+ programInstance = (CompiledComponent)
select(normalizedName);
+ } catch (Exception e) {
+ getLogger().debug("The class was not preloaded");
}
}
-
- try {
- programInstance = (CompiledComponent) select(normalizedName);
- } catch (Exception cme) {
- getLogger().debug("Can't load ServerPage", cme);
- }
- }
-
- if (this.autoReload == false) {
- return programInstance;
- }
-
- /*
- * FIXME: It's the program (not the instance) that must
- * be queried for changes!!!
- */
-
- if (programInstance != null &&
programInstance.modifiedSince(source.getLastModified())) {
- // Release the component.
- release(programInstance);
-
- // Unload program
- ProgrammingLanguage programmingLanguage =
(ProgrammingLanguage)this.languageSelector.select(programmingLanguageName);
- programmingLanguage.setLanguageName(programmingLanguageName);
- programmingLanguage.unload(program, normalizedName,
this.workDir);
- this.cache.removeGenerator(normalizedName);
-
- // Invalidate previous program/instance pair
- program = null;
- programInstance = null;
- }
-
- if (programInstance == null) {
- if (program == null) {
+
+ if (programInstance == null) {
MarkupLanguage markupLanguage = null;
ProgrammingLanguage programmingLanguage = null;
try {
@@ -253,15 +199,72 @@
getLogger().debug("Language Exception", le);
throw new ProcessingException("Language Exception", le);
} finally {
- this.markupSelector.release(markupLanguage);
- this.languageSelector.release(programmingLanguage);
+ if (this.markupSelector != null) {
+ this.markupSelector.release(markupLanguage);
+ }
+
+ if (this.languageSelector != null) {
+ this.languageSelector.release(programmingLanguage);
+ }
}
+
+ try {
+ programInstance = (CompiledComponent)
select(normalizedName);
+ } catch (Exception cme) {
+ getLogger().debug("Can't load ServerPage", cme);
+ }
}
- // Instantiate
- programInstance = (CompiledComponent) select(normalizedName);
- }
+
+ if (this.autoReload == false) {
+ return programInstance;
+ }
+
+ /*
+ * FIXME: It's the program (not the instance) that must
+ * be queried for changes!!!
+ */
+
+ if (programInstance != null &&
programInstance.modifiedSince(source.getLastModified())) {
+ // Release the component.
+ release(programInstance);
+
+ // Unload program
+ ProgrammingLanguage programmingLanguage =
(ProgrammingLanguage)this.languageSelector.select(programmingLanguageName);
+ programmingLanguage.setLanguageName(programmingLanguageName);
+ programmingLanguage.unload(program, normalizedName,
this.workDir);
+ this.cache.removeGenerator(normalizedName);
+
+ // Invalidate previous program/instance pair
+ program = null;
+ programInstance = null;
+ }
+
+ if (programInstance == null) {
+ if (program == null) {
+ MarkupLanguage markupLanguage = null;
+ ProgrammingLanguage programmingLanguage = null;
+ try {
+ // Get markup and programming languages
+ markupLanguage =
(MarkupLanguage)this.markupSelector.select(markupLanguageName);
+ programmingLanguage =
(ProgrammingLanguage)this.languageSelector.select(programmingLanguageName);
+
programmingLanguage.setLanguageName(programmingLanguageName);
+ program = this.generateResource(newManager,
fileName, normalizedName, markupLanguage, programmingLanguage, resolver);
+ } catch (LanguageException le) {
+ getLogger().debug("Language Exception", le);
+ throw new ProcessingException("Language Exception",
le);
+ } finally {
+ this.markupSelector.release(markupLanguage);
+ this.languageSelector.release(programmingLanguage);
+ }
+ }
+ // Instantiate
+ programInstance = (CompiledComponent) select(normalizedName);
+ }
- return programInstance;
+ return programInstance;
+ } finally {
+ source.recycle();
+ }
}
private Class generateResource(ComponentManager newManager,
@@ -271,36 +274,41 @@
ProgrammingLanguage programmingLanguage,
SourceResolver resolver)
throws Exception {
-
- // Input Source
- InputSource is = resolver.resolve(fileName).getInputSource();
- // Generate code
- String code = markupLanguage.generateCode(is, normalizedName,
programmingLanguage, resolver);
- String encoding = markupLanguage.getEncoding();
- // Format source code if applicable
- CodeFormatter codeFormatter = programmingLanguage.getCodeFormatter();
- if (codeFormatter != null) {
- code = codeFormatter.format(code, encoding);
- }
- // Store generated code
- String sourceFilename = normalizedName + "." +
programmingLanguage.getSourceExtension();
- repository.store(sourceFilename, code);
- // [Compile]/Load generated program
- Class program = programmingLanguage.load(normalizedName,
this.workDir, markupLanguage.getEncoding());
- // Store generated program in cache
- this.addCompiledComponent(newManager, normalizedName, program);
- // FIXME: Do we want this functionality? All analysis says no.
- if (markupLanguage.getClass().equals(SitemapMarkupLanguage.class)) {
- try {
- select("sitemap");
- } catch (Exception e) {
- // If the root sitemap has not been compiled, add an alias
here.
- this.addCompiledComponent(newManager, "sitemap", program);
+ Source source = resolver.resolve(fileName);
+ try {
+ // Input Source
+ InputSource is = source.getInputSource();
+ // Generate code
+ String code = markupLanguage.generateCode(is, normalizedName,
programmingLanguage, resolver);
+ String encoding = markupLanguage.getEncoding();
+ // Format source code if applicable
+ CodeFormatter codeFormatter =
programmingLanguage.getCodeFormatter();
+ if (codeFormatter != null) {
+ code = codeFormatter.format(code, encoding);
}
+ // Store generated code
+ String sourceFilename = normalizedName + "." +
programmingLanguage.getSourceExtension();
+ repository.store(sourceFilename, code);
+ // [Compile]/Load generated program
+ Class program = programmingLanguage.load(normalizedName,
this.workDir, markupLanguage.getEncoding());
+ // Store generated program in cache
+ this.addCompiledComponent(newManager, normalizedName, program);
+
+ // FIXME: Do we want this functionality? All analysis says no.
+ if
(markupLanguage.getClass().equals(SitemapMarkupLanguage.class)) {
+ try {
+ select("sitemap");
+ } catch (Exception e) {
+ // If the root sitemap has not been compiled, add an
alias here.
+ this.addCompiledComponent(newManager, "sitemap",
program);
+ }
+ }
+
+ return program;
+ } finally {
+ source.recycle();
}
-
- return program;
}
private final void addCompiledComponent(ComponentManager newManager,
No revision
No revision
1.4.2.4 +8 -3
xml-cocoon2/src/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java
Index: AbstractMarkupLanguage.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java,v
retrieving revision 1.4.2.3
retrieving revision 1.4.2.4
diff -u -r1.4.2.3 -r1.4.2.4
--- AbstractMarkupLanguage.java 2001/08/20 14:07:26 1.4.2.3
+++ AbstractMarkupLanguage.java 2001/08/22 03:57:58 1.4.2.4
@@ -50,7 +50,7 @@
* logicsheets as the only means of code generation. Code generation should
be decoupled from this context!!!
* @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
- * @version CVS $Revision: 1.4.2.3 $ $Date: 2001/08/20 14:07:26 $
+ * @version CVS $Revision: 1.4.2.4 $ $Date: 2001/08/22 03:57:58 $
*/
public abstract class AbstractMarkupLanguage extends AbstractLoggable
implements MarkupLanguage, Composable, Configurable {
/** The supported language table */
@@ -311,8 +311,10 @@
* @exception SAXException Logicsheet parse error
*/
protected void addLogicsheetToList(LanguageDescriptor language, String
logicsheetLocation, SourceResolver resolver)
- throws MalformedURLException, IOException, SAXException,
ProcessingException {
- Source inputSource = resolver.resolve(logicsheetLocation);
+ throws MalformedURLException, IOException, SAXException,
ProcessingException
+ {
+ Source inputSource = resolver.resolve(logicsheetLocation);
+ try {
URL url = new URL(inputSource.getSystemId());
getLogger().debug("Logicsheet Used:" + url.toExternalForm());
@@ -353,6 +355,9 @@
}
}
}
+ } finally {
+ inputSource.recycle();
+ }
}
//
// Inner classes
No revision
No revision
1.1.2.9 +28 -27
xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/XSPFormValidatorHelper.java
Index: XSPFormValidatorHelper.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/XSPFormValidatorHelper.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -r1.1.2.8 -r1.1.2.9
--- XSPFormValidatorHelper.java 2001/08/20 14:07:27 1.1.2.8
+++ XSPFormValidatorHelper.java 2001/08/22 03:57:58 1.1.2.9
@@ -27,7 +27,7 @@
* The <code>ValidatorActionResult</code> object helper
*
* @author <a href="mailto:[EMAIL PROTECTED]">Christian Haul</a>
- * @version CVS $Revision: 1.1.2.8 $ $Date: 2001/08/20 14:07:27 $
+ * @version CVS $Revision: 1.1.2.9 $ $Date: 2001/08/22 03:57:58 $
*/
public class XSPFormValidatorHelper {
/**
@@ -451,34 +451,35 @@
synchronized (XSPFormValidatorHelper.configurations) {
conf = (ConfigurationHelper)
XSPFormValidatorHelper.configurations.get(descriptor);
- Source source = null;
+ Source source = null;
SourceHandler sourceHandler = null;
- try {
- sourceHandler = (SourceHandler)
manager.lookup(SourceHandler.ROLE);
- source = sourceHandler.getSource(null, descriptor);
-
- if (conf == null || ( reloadable && conf.lastModified <
source.getLastModified())) {
- logger.debug("XSPFormValidatorHelper.getConfiguration:
(Re)Loading " + descriptor);
-
- if (conf == null)
- conf = new ConfigurationHelper();
-
- SAXConfigurationHandler builder = new SAXConfigurationHandler();
- source.stream(builder);
-
- conf.lastModified = source.getLastModified();
- conf.configuration = builder.getConfiguration();
-
- XSPFormValidatorHelper.cacheConfiguration(descriptor, conf);
- } else {
- logger.debug("XSPFormValidatorHelper.getConfiguration: Using
cached configuration for " + descriptor);
- }
- } catch (Exception e) {
- logger.error("XSPFormValidatorHelper.getConfiguration: Could not
configure Database mapping environment", e);
- throw new ConfigurationException("Error trying to load
configurations for resource: " + source.getSystemId());
- } finally {
+ try {
+ sourceHandler = (SourceHandler)
manager.lookup(SourceHandler.ROLE);
+ source = sourceHandler.getSource(null, descriptor);
+
+ if (conf == null || ( reloadable && conf.lastModified <
source.getLastModified())) {
+ logger.debug("XSPFormValidatorHelper.getConfiguration:
(Re)Loading " + descriptor);
+
+ if (conf == null)
+ conf = new ConfigurationHelper();
+
+ SAXConfigurationHandler builder = new
SAXConfigurationHandler();
+ source.stream(builder);
+
+ conf.lastModified = source.getLastModified();
+ conf.configuration = builder.getConfiguration();
+
+ XSPFormValidatorHelper.cacheConfiguration(descriptor,
conf);
+ } else {
+ logger.debug("XSPFormValidatorHelper.getConfiguration:
Using cached configuration for " + descriptor);
+ }
+ } catch (Exception e) {
+ logger.error("XSPFormValidatorHelper.getConfiguration: Could
not configure Database mapping environment", e);
+ throw new ConfigurationException("Error trying to load
configurations for resource: " + source.getSystemId());
+ } finally {
+ if (source != null) source.recycle();
if (sourceHandler != null) manager.release((Component)
sourceHandler);
- }
+ }
}
return conf.configuration;
No revision
No revision
1.1.2.15 +6 -2
xml-cocoon2/src/org/apache/cocoon/components/source/SitemapSource.java
Index: SitemapSource.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/source/SitemapSource.java,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -u -r1.1.2.14 -r1.1.2.15
--- SitemapSource.java 2001/08/20 14:07:29 1.1.2.14
+++ SitemapSource.java 2001/08/22 03:57:58 1.1.2.15
@@ -45,7 +45,7 @@
* Description of a source which is defined by a pipeline.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.1.2.14 $ $Date: 2001/08/20 14:07:29 $
+ * @version CVS $Revision: 1.1.2.15 $ $Date: 2001/08/22 03:57:58 $
*/
public final class SitemapSource
@@ -321,8 +321,12 @@
this.pipeline = null;
this.lastModificationDate = 0;
this.environment.reset();
+ if (this.redirectSource != null) this.redirectSource.recycle();
this.redirectSource = null;
this.exception = null;
}
-}
+ public void recycle() {
+ reset();
+ }
+}
1.1.2.8 +3 -1
xml-cocoon2/src/org/apache/cocoon/components/source/URLSource.java
Index: URLSource.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/source/URLSource.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -r1.1.2.7 -r1.1.2.8
--- URLSource.java 2001/08/20 14:07:29 1.1.2.7
+++ URLSource.java 2001/08/22 03:57:58 1.1.2.8
@@ -30,7 +30,7 @@
* Description of a source which is described by an URL.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.1.2.7 $ $Date: 2001/08/20 14:07:29 $
+ * @version CVS $Revision: 1.1.2.8 $ $Date: 2001/08/22 03:57:58 $
*/
public final class URLSource
@@ -342,5 +342,7 @@
}
}
+ public void recycle() {
+ }
}
No revision
No revision
1.6.2.4 +3 -2 xml-cocoon2/src/org/apache/cocoon/environment/Source.java
Index: Source.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/environment/Source.java,v
retrieving revision 1.6.2.3
retrieving revision 1.6.2.4
diff -u -r1.6.2.3 -r1.6.2.4
--- Source.java 2001/08/20 14:07:30 1.6.2.3
+++ Source.java 2001/08/22 03:57:58 1.6.2.4
@@ -8,6 +8,7 @@
package org.apache.cocoon.environment;
+import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.xml.XMLConsumer;
import org.xml.sax.ContentHandler;
@@ -23,10 +24,10 @@
* for accessing any resource (URL, local file etc).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.6.2.3 $ $Date: 2001/08/20 14:07:30 $
+ * @version CVS $Revision: 1.6.2.4 $ $Date: 2001/08/22 03:57:58 $
*/
-public interface Source {
+public interface Source extends Recyclable {
/**
* Get the last modification date of the source or 0 if it
* is not possible to determine the date.
No revision
No revision
1.6.2.5 +5 -2
xml-cocoon2/src/org/apache/cocoon/generation/DirectoryGenerator.java
Index: DirectoryGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/DirectoryGenerator.java,v
retrieving revision 1.6.2.4
retrieving revision 1.6.2.5
diff -u -r1.6.2.4 -r1.6.2.5
--- DirectoryGenerator.java 2001/08/20 14:07:31 1.6.2.4
+++ DirectoryGenerator.java 2001/08/22 03:57:58 1.6.2.5
@@ -61,7 +61,7 @@
* (Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Conny Krappatsch</a>
* (SMB GmbH) for Virbus AG
- * @version CVS $Revision: 1.6.2.4 $ $Date: 2001/08/20 14:07:31 $ */
+ * @version CVS $Revision: 1.6.2.5 $ $Date: 2001/08/22 03:57:58 $ */
public class DirectoryGenerator extends ComposerGenerator implements
Recyclable {
@@ -160,8 +160,9 @@
public void generate()
throws SAXException, ProcessingException {
String directory = super.source;
+ Source inputSource = null;
try {
- Source inputSource = this.resolver.resolve(directory);
+ inputSource = this.resolver.resolve(directory);
directory = inputSource.getSystemId();
if (inputSource.isFile() == false) {
throw new ResourceNotFoundException(directory + " is not a
directory.");
@@ -183,6 +184,8 @@
getLogger().warn("Could not read directory " + directory, ioe);
throw new ResourceNotFoundException("Could not read directory "
+ directory, ioe);
+ } finally {
+ if (inputSource != null) inputSource.recycle();
}
}
1.9.2.10 +2 -1
xml-cocoon2/src/org/apache/cocoon/generation/FileGenerator.java
Index: FileGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/FileGenerator.java,v
retrieving revision 1.9.2.9
retrieving revision 1.9.2.10
diff -u -r1.9.2.9 -r1.9.2.10
--- FileGenerator.java 2001/08/20 14:07:31 1.9.2.9
+++ FileGenerator.java 2001/08/22 03:57:58 1.9.2.10
@@ -35,7 +35,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
* (Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.9.2.9 $ $Date: 2001/08/20 14:07:31 $
+ * @version CVS $Revision: 1.9.2.10 $ $Date: 2001/08/22 03:57:58 $
*/
public class FileGenerator extends ComposerGenerator
implements Cacheable, Recyclable {
@@ -57,6 +57,7 @@
*/
public void recycle() {
super.recycle();
+ this.inputSource.recycle();
this.inputSource = null;
}
1.4.2.8 +2 -1
xml-cocoon2/src/org/apache/cocoon/generation/HTMLGenerator.java
Index: HTMLGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/HTMLGenerator.java,v
retrieving revision 1.4.2.7
retrieving revision 1.4.2.8
diff -u -r1.4.2.7 -r1.4.2.8
--- HTMLGenerator.java 2001/08/21 18:00:02 1.4.2.7
+++ HTMLGenerator.java 2001/08/22 03:57:58 1.4.2.8
@@ -39,7 +39,7 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.4.2.7 $ $Date: 2001/08/21 18:00:02 $
+ * @version CVS $Revision: 1.4.2.8 $ $Date: 2001/08/22 03:57:58 $
*/
public class HTMLGenerator extends ComposerGenerator implements Cacheable,
Recyclable {
@@ -55,6 +55,7 @@
*/
public void recycle() {
super.recycle();
+ this.inputSource.recycle();
this.inputSource = null;
this.xpath = null;
}
1.6.2.10 +6 -2
xml-cocoon2/src/org/apache/cocoon/generation/JspGenerator.java
Index: JspGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/JspGenerator.java,v
retrieving revision 1.6.2.9
retrieving revision 1.6.2.10
diff -u -r1.6.2.9 -r1.6.2.10
--- JspGenerator.java 2001/08/20 14:07:31 1.6.2.9
+++ JspGenerator.java 2001/08/22 03:57:58 1.6.2.10
@@ -14,6 +14,7 @@
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.jsp.JSPEngine;
import org.apache.cocoon.components.parser.Parser;
+import org.apache.cocoon.environment.Source;
import org.apache.cocoon.environment.http.HttpEnvironment;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -31,7 +32,7 @@
* results into SAX events.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
- * @version CVS $Revision: 1.6.2.9 $ $Date: 2001/08/20 14:07:31 $
+ * @version CVS $Revision: 1.6.2.10 $ $Date: 2001/08/22 03:57:58 $
*/
public class JspGenerator extends ServletGenerator implements Recyclable,
Configurable {
@@ -58,8 +59,10 @@
JSPEngine engine = null;
Parser parser = null;
+ Source src = null;
try {
- String url = this.resolver.resolve(this.source).getSystemId();
+ src = this.resolver.resolve(this.source);
+ String url = src.getSystemId();
// Guarantee src parameter is a file
if (!url.startsWith("file:/"))
throw new IOException("Protocol not supported: " + url);
@@ -92,6 +95,7 @@
getLogger().debug("Exception in JspGenerator.generate()", e);
throw new ProcessingException("Exception
JspGenerator.generate()",e);
} finally {
+ if (src != null) src.recycle();
if (parser != null) this.manager.release(parser);
if (engine != null) this.manager.release(engine);
}
1.6.2.3 +8 -6
xml-cocoon2/src/org/apache/cocoon/generation/PhpGenerator.java
Index: PhpGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/PhpGenerator.java,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -u -r1.6.2.2 -r1.6.2.3
--- PhpGenerator.java 2001/08/20 14:07:31 1.6.2.2
+++ PhpGenerator.java 2001/08/22 03:57:58 1.6.2.3
@@ -32,7 +32,7 @@
* results into SAX events.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Sam Ruby</a>
- * @version CVS $Revision: 1.6.2.2 $ $Date: 2001/08/20 14:07:31 $
+ * @version CVS $Revision: 1.6.2.3 $ $Date: 2001/08/22 03:57:58 $
*/
public class PhpGenerator extends ServletGenerator implements Recyclable {
@@ -124,13 +124,14 @@
}
// ensure that we are serving a file...
- Source inputSource = this.resolver.resolve(this.source);
- String systemId = inputSource.getSystemId();
- if (!systemId.startsWith("file:/"))
- throw new IOException("protocol not supported: " + systemId);
-
+ Source inputSource = null;
Parser parser = null;
try {
+ inputSource = this.resolver.resolve(this.source);
+ String systemId = inputSource.getSystemId();
+ if (!systemId.startsWith("file:/"))
+ throw new IOException("protocol not supported: " + systemId);
+
// construct both ends of the pipe
PipedInputStream input = new PipedInputStream();
@@ -157,6 +158,7 @@
getLogger().debug("PhpGenerator.generate()", e);
throw new IOException(e.toString());
} finally {
+ if (inputSource != null) inputSource.recycle();
if (parser != null) this.manager.release(parser);
}
}
1.7.2.4 +2 -1
xml-cocoon2/src/org/apache/cocoon/generation/ScriptGenerator.java
Index: ScriptGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/ScriptGenerator.java,v
retrieving revision 1.7.2.3
retrieving revision 1.7.2.4
diff -u -r1.7.2.3 -r1.7.2.4
--- ScriptGenerator.java 2001/08/20 14:07:31 1.7.2.3
+++ ScriptGenerator.java 2001/08/22 03:57:58 1.7.2.4
@@ -45,7 +45,7 @@
* </pre>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason Foster</a>
- * @version CVS $Revision: 1.7.2.3 $ $Date: 2001/08/20 14:07:31 $
+ * @version CVS $Revision: 1.7.2.4 $ $Date: 2001/08/22 03:57:58 $
*/
public class ScriptGenerator extends ComposerGenerator implements
Configurable,
Recyclable {
@@ -101,6 +101,7 @@
public void recycle() {
super.recycle();
+ this.inputSource.recycle();
this.inputSource = null;
}
1.7.2.8 +2 -1
xml-cocoon2/src/org/apache/cocoon/generation/ServerPagesGenerator.java
Index: ServerPagesGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/ServerPagesGenerator.java,v
retrieving revision 1.7.2.7
retrieving revision 1.7.2.8
diff -u -r1.7.2.7 -r1.7.2.8
--- ServerPagesGenerator.java 2001/08/20 14:07:31 1.7.2.7
+++ ServerPagesGenerator.java 2001/08/22 03:57:58 1.7.2.8
@@ -39,7 +39,7 @@
* delegating actual SAX event generation.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
- * @version CVS $Revision: 1.7.2.7 $ $Date: 2001/08/20 14:07:31 $
+ * @version CVS $Revision: 1.7.2.8 $ $Date: 2001/08/22 03:57:58 $
*/
public class ServerPagesGenerator
extends ServletGenerator
@@ -441,6 +441,7 @@
if (generator != null)
programGenerator.release(generator);
this.generator = null;
+ this.inputSource.recycle();
this.inputSource = null;
this.eventStack.clear();
}
No revision
No revision
1.3.2.5 +2 -1
xml-cocoon2/src/org/apache/cocoon/reading/ResourceReader.java
Index: ResourceReader.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/reading/ResourceReader.java,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -u -r1.3.2.4 -r1.3.2.5
--- ResourceReader.java 2001/08/20 14:07:32 1.3.2.4
+++ ResourceReader.java 2001/08/22 03:57:59 1.3.2.5
@@ -31,7 +31,7 @@
/**
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Revision: 1.3.2.4 $ $Date: 2001/08/20 14:07:32 $
+ * @version CVS $Revision: 1.3.2.5 $ $Date: 2001/08/22 03:57:59 $
*
* The <code>ResourceReader</code> component is used to serve binary data
* in a sitemap pipeline. It makes use of HTTP Headers to determine if
@@ -73,6 +73,7 @@
public void recycle() {
super.recycle();
+ this.inputSource.recycle();
this.inputSource = null;
}
No revision
No revision
1.5.2.11 +4 -1
xml-cocoon2/src/org/apache/cocoon/sitemap/ContentAggregator.java
Index: ContentAggregator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/ContentAggregator.java,v
retrieving revision 1.5.2.10
retrieving revision 1.5.2.11
diff -u -r1.5.2.10 -r1.5.2.11
--- ContentAggregator.java 2001/08/20 14:07:34 1.5.2.10
+++ ContentAggregator.java 2001/08/22 03:57:59 1.5.2.11
@@ -32,11 +32,12 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;
+import java.util.Iterator;
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: ContentAggregator.java,v 1.5.2.10 2001/08/20 14:07:34
dims Exp $
+ * @version CVS $Id: ContentAggregator.java,v 1.5.2.11 2001/08/22 03:57:59
vgritsenko Exp $
*/
public class ContentAggregator extends ContentHandlerWrapper implements
Generator, Cacheable, Composable {
@@ -257,6 +258,8 @@
this.rootElement = null;
this.rootElementNS = null;
this.rootElementNSPrefix = null;
+ for (Iterator i = this.parts.iterator(); i.hasNext();)
+ ((Part)i.next()).source.recycle();
this.parts.clear();
this.currentNS.clear();
this.xmlConsumer = null;
1.9.2.12 +6 -1 xml-cocoon2/src/org/apache/cocoon/sitemap/Handler.java
Index: Handler.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/Handler.java,v
retrieving revision 1.9.2.11
retrieving revision 1.9.2.12
diff -u -r1.9.2.11 -r1.9.2.12
--- Handler.java 2001/08/20 14:07:34 1.9.2.11
+++ Handler.java 2001/08/22 03:57:59 1.9.2.12
@@ -40,7 +40,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.9.2.11 $ $Date: 2001/08/20 14:07:34 $
+ * @version CVS $Revision: 1.9.2.12 $ $Date: 2001/08/22 03:57:59 $
*/
public class Handler extends AbstractLoggable
implements Runnable, Contextualizable, Composable, Processor, Disposable,
SourceResolver {
@@ -230,6 +230,7 @@
}
this.regeneration = null;
this.isRegenerationRunning = false;
+ this.contextSource.recycle();
this.contextSource = null;
}
}
@@ -251,6 +252,10 @@
* dispose
*/
public void dispose() {
+ if (this.source != null) {
+ this.source.recycle();
+ this.source = null;
+ }
if (this.sourceHandler != null) {
manager.release((Component)this.sourceHandler);
this.sourceHandler = null;
No revision
No revision
1.1.2.5 +7 -2
xml-cocoon2/src/org/apache/cocoon/transformation/CIncludeTransformer.java
Index: CIncludeTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/CIncludeTransformer.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- CIncludeTransformer.java 2001/08/20 14:07:34 1.1.2.4
+++ CIncludeTransformer.java 2001/08/22 03:57:59 1.1.2.5
@@ -12,6 +12,7 @@
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.environment.Source;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.xml.IncludeXMLConsumer;
import org.xml.sax.Attributes;
@@ -31,7 +32,7 @@
* which surrounds the included content.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/08/20 14:07:34 $ $Author:
dims $
+ * @version CVS $Revision: 1.1.2.5 $ $Date: 2001/08/22 03:57:59 $ $Author:
vgritsenko $
*/
public class CIncludeTransformer extends AbstractTransformer
implements Recyclable, Composable {
@@ -123,14 +124,18 @@
attrs);
}
+ Source source = null;
try {
- this.sourceResolver.resolve(src).stream(consumer);
+ source = this.sourceResolver.resolve(src);
+ source.stream(consumer);
} catch (IOException e) {
getLogger().error("CIncludeTransformer", e);
throw new SAXException("CIncludeTransformer could not read
resource", e);
} catch (ProcessingException e){
getLogger().error("Could not stream input", e);
throw new SAXException("Exception in CIncludeTransformer",e);
+ } finally {
+ source.recycle();
}
if (!"".equals(element)) {
1.8.2.7 +2 -2
xml-cocoon2/src/org/apache/cocoon/transformation/I18nTransformer.java
Index: I18nTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/I18nTransformer.java,v
retrieving revision 1.8.2.6
retrieving revision 1.8.2.7
diff -u -r1.8.2.6 -r1.8.2.7
--- I18nTransformer.java 2001/08/20 14:07:34 1.8.2.6
+++ I18nTransformer.java 2001/08/22 03:57:59 1.8.2.7
@@ -843,8 +843,6 @@
*/
private void initialiseDictionary(Source inputSource)
throws ProcessingException, SAXException, MalformedURLException,
IOException {
-
-
try
{
// How this could be cached?
@@ -860,6 +858,8 @@
} catch(IOException e) {
getLogger().error("Error in initialiseDictionary", e);
throw e;
+ } finally {
+ inputSource.recycle();
}
}
1.15.2.14 +7 -4
xml-cocoon2/src/org/apache/cocoon/transformation/TraxTransformer.java
Index: TraxTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/TraxTransformer.java,v
retrieving revision 1.15.2.13
retrieving revision 1.15.2.14
diff -u -r1.15.2.13 -r1.15.2.14
--- TraxTransformer.java 2001/08/20 14:07:34 1.15.2.13
+++ TraxTransformer.java 2001/08/22 03:57:59 1.15.2.14
@@ -93,7 +93,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Id: TraxTransformer.java,v 1.15.2.13 2001/08/20 14:07:34
dims Exp $
+ * @version CVS $Id: TraxTransformer.java,v 1.15.2.14 2001/08/22 03:57:59
vgritsenko Exp $
*/
public class TraxTransformer extends AbstractTransformer
implements Transformer, Composable, Recyclable, Configurable, Cacheable,
Disposable, URIResolver {
@@ -244,8 +244,8 @@
*/
public javax.xml.transform.Source resolve(String href, String base)
throws javax.xml.transform.TransformerException {
+ Source xslSource = null;
try {
- Source xslSource;
if (href.indexOf(":") > 1) {
xslSource = this.resolver.resolve(href);
} else {
@@ -270,12 +270,14 @@
}
}
return new
javax.xml.transform.stream.StreamSource(xslSource.getInputStream(),
xslSource.getSystemId());
- } catch (IOException e) {
+ } catch (IOException e) {
throw new javax.xml.transform.TransformerException(e);
- } catch (SAXException e) {
+ } catch (SAXException e) {
throw new javax.xml.transform.TransformerException(e);
} catch (ProcessingException e) {
throw new javax.xml.transform.TransformerException(e);
+ } finally {
+ if (xslSource != null) xslSource.recycle();
}
}
/**
@@ -592,6 +594,7 @@
*/
this.transformerHandler = null;
this.objectModel = null;
+ this.inputSource.recycle();
this.inputSource = null;
this.par = null;
this.resolver = null;
1.4.2.3 +10 -4
xml-cocoon2/src/org/apache/cocoon/transformation/XTTransformer.java
Index: XTTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/org/apache/cocoon/transformation/XTTransformer.java,v
retrieving revision 1.4.2.2
retrieving revision 1.4.2.3
diff -u -r1.4.2.2 -r1.4.2.3
--- XTTransformer.java 2001/08/20 14:07:34 1.4.2.2
+++ XTTransformer.java 2001/08/22 03:57:59 1.4.2.3
@@ -32,6 +32,7 @@
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.store.Store;
import org.apache.cocoon.components.url.URLFactory;
+import org.apache.cocoon.environment.Source;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.xml.DocumentHandlerAdapter;
import org.apache.cocoon.xml.DocumentHandlerWrapper;
@@ -62,7 +63,7 @@
* This Transformer use the XT processor.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Sahuc Sebastien</a>
- * @version CVS $Revision: 1.4.2.2 $ $Date: 2001/08/20 14:07:34 $
+ * @version CVS $Revision: 1.4.2.3 $ $Date: 2001/08/22 03:57:59 $
*/
public class XTTransformer extends DocumentHandlerWrapper
implements Transformer, Composable, Loggable, Recyclable, Disposable {
@@ -136,9 +137,14 @@
new ProcessingException(e.getMessage(),e);
}
loaderprocessor.setParser(saxParser.getParser());
- InputSource xslsrc = resolver.resolve(xsluri).getInputSource();
- loaderprocessor.loadStylesheet(xslsrc);
- if (store != null) store.store(xsluri, loaderprocessor);
+ Source source = resolver.resolve(xsluri);
+ try {
+ InputSource xslsrc = source.getInputSource();
+ loaderprocessor.loadStylesheet(xslsrc);
+ if (store != null) store.store(xsluri, loaderprocessor);
+ } finally {
+ source.recycle();
+ }
}
// Always clone the processor before using it,
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]