Author: chestnut
Date: Thu Jul 14 17:27:57 2005
New Revision: 219145
URL: http://svn.apache.org/viewcvs?rev=219145&view=rev
Log:
Properly releases ServiceSelector, patch provided by Andreas Hartmann. This
resloves Bug 35734
Modified:
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/webdav/Propfind.java
Modified:
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/webdav/Propfind.java
URL:
http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/webdav/Propfind.java?rev=219145&r1=219144&r2=219145&view=diff
==============================================================================
---
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/webdav/Propfind.java
(original)
+++
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/webdav/Propfind.java
Thu Jul 14 17:27:57 2005
@@ -66,7 +66,8 @@
Publication _publication = this.getPublication();
- ServiceSelector selector = null;
+ ServiceSelector siteManagerSelector = null;
+ ServiceSelector docBuilderSelector = null;
SiteManager siteManager = null;
ResourcesManager resourcesManager = null;
DocumentBuilder docBuilder = null;
@@ -93,14 +94,14 @@
backupDirectory,
publicationPath);
- selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE
+ "Selector");
- siteManager = (SiteManager)
selector.select(_publication.getSiteManagerHint());
+ siteManagerSelector = (ServiceSelector)
this.manager.lookup(SiteManager.ROLE + "Selector");
+ siteManager = (SiteManager)
siteManagerSelector.select(_publication.getSiteManagerHint());
Document[] documents =
siteManager.getDocuments(getDocumentIdentityMap(),
_publication,
this.getArea());
- selector = (ServiceSelector)
this.manager.lookup(DocumentBuilder.ROLE + "Selector");
- docBuilder = (DocumentBuilder)
selector.select(_publication.getDocumentBuilderHint());
+ docBuilderSelector = (ServiceSelector)
this.manager.lookup(DocumentBuilder.ROLE + "Selector");
+ docBuilder = (DocumentBuilder)
docBuilderSelector.select(_publication.getDocumentBuilderHint());
for (int i = 0; i < documents.length; i++) {
String test =
documents[i].getCanonicalWebappURL().replaceFirst("/[^/]*.html", "");
@@ -165,12 +166,17 @@
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
- if (selector != null) {
+ if (siteManagerSelector != null) {
if (siteManager != null) {
- selector.release(siteManager);
- selector.release(docBuilder);
+ siteManagerSelector.release(siteManager);
}
- this.manager.release(selector);
+ this.manager.release(siteManagerSelector);
+ }
+ if (docBuilderSelector != null) {
+ if (docBuilder != null) {
+ docBuilderSelector.release(docBuilder);
+ }
+ this.manager.release(docBuilderSelector);
}
}
}
|