You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/11/05 23:55:58 UTC
svn commit: r592174 - in /incubator/abdera/java/trunk:
core/src/main/java/org/apache/abdera/factory/
core/src/main/java/org/apache/abdera/model/
parser/src/main/java/org/apache/abdera/parser/stax/
Author: jmsnell
Date: Mon Nov 5 14:55:57 2007
New Revision: 592174
URL: http://svn.apache.org/viewvc?rev=592174&view=rev
Log:
Remove the element wrapper cache. It's no longer needed and was causing a memory leak anyway
Modified:
incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/ExtensionFactoryMap.java
incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/Factory.java
incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java
incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/ExtensionFactoryMap.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/ExtensionFactoryMap.java?rev=592174&r1=592173&r2=592174&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/ExtensionFactoryMap.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/ExtensionFactoryMap.java Mon Nov 5 14:55:57 2007
@@ -20,8 +20,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
-import java.util.WeakHashMap;
import org.apache.abdera.model.Base;
import org.apache.abdera.model.Document;
@@ -32,41 +30,31 @@
* It maintains the collection ExtensionFactory instances discovered on
* the classpath and a cache of Internal-Wrapper mappings.
*/
+@SuppressWarnings("unchecked")
public class ExtensionFactoryMap
implements ExtensionFactory {
private final List<ExtensionFactory> factories;
- private final Map<Element,Element> wrappers;
public ExtensionFactoryMap(List<ExtensionFactory> factories) {
this.factories = Collections.synchronizedList(factories);
- this.wrappers = Collections.synchronizedMap(
- new WeakHashMap<Element,Element>());
}
@SuppressWarnings("unchecked")
public <T extends Element> T getElementWrapper(Element internal) {
if (internal == null) return null;
- T t = (T)wrappers.get(internal);
- if (t == null) {
- synchronized(factories) {
- for (ExtensionFactory factory : factories) {
- t = (T) factory.getElementWrapper(internal);
- if (t != null && t != internal) {
- setElementWrapper(internal,t);
- return t;
- }
+ T t = null;
+ synchronized(factories) {
+ for (ExtensionFactory factory : factories) {
+ t = (T) factory.getElementWrapper(internal);
+ if (t != null && t != internal) {
+ return t;
}
}
- t = (T) internal;
}
return (t != null) ? t : (T)internal;
}
- public void setElementWrapper(Element internal, Element wrapper) {
- wrappers.put(internal, wrapper);
- }
-
public String[] getNamespaces() {
List<String> ns = new ArrayList<String>();
synchronized(factories) {
Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/Factory.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/Factory.java?rev=592174&r1=592173&r2=592174&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/Factory.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/factory/Factory.java Mon Nov 5 14:55:57 2007
@@ -637,11 +637,6 @@
String newUuidUri();
/**
- * Set an element wrapper
- */
- void setElementWrapper(Element element, Element wrapper);
-
- /**
* Get the Abdera instance for this factory
*/
Abdera getAbdera();
Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java?rev=592174&r1=592173&r2=592174&view=diff
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/ElementWrapper.java Mon Nov 5 14:55:57 2007
@@ -50,7 +50,6 @@
Element el = factory.newElement(qname);
internal = (el instanceof ElementWrapper) ?
((ElementWrapper)el).getInternal() : el;
- factory.setElementWrapper(internal, this);
}
public void addComment(
Modified: incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java?rev=592174&r1=592173&r2=592174&view=diff
==============================================================================
--- incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java (original)
+++ incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java Mon Nov 5 14:55:57 2007
@@ -803,10 +803,10 @@
return FOMHelper.generateUuid();
}
- public void setElementWrapper(Element internal, Element wrapper) {
- factoriesMap.setElementWrapper(internal, wrapper);
- }
-
+// public void setElementWrapper(Element internal, Element wrapper) {
+// factoriesMap.setElementWrapper(internal, wrapper);
+// }
+//
public <T extends Element> T getElementWrapper(Element internal) {
if (internal == null) return null;