Author: reto
Date: Fri Jul 2 13:47:53 2010
New Revision: 959985
URL: http://svn.apache.org/viewvc?rev=959985&view=rev
Log:
added missing lock on config-graph
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletDefinition.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletDefinition.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletDefinition.java?rev=959985&r1=959984&r2=959985&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletDefinition.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletDefinition.java
Fri Jul 2 13:47:53 2010
@@ -17,6 +17,7 @@
package org.apache.clerezza.platform.typerendering;
import java.util.Iterator;
+import java.util.concurrent.locks.Lock;
import java.util.regex.Pattern;
import javax.ws.rs.core.MediaType;
import org.apache.clerezza.platform.typerendering.ontologies.TYPERENDERING;
@@ -28,6 +29,7 @@ import org.apache.clerezza.rdf.core.Reso
import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.TypedLiteral;
import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.LockableMGraph;
import org.apache.clerezza.rdf.ontologies.RDF;
import org.apache.clerezza.rdf.utils.GraphNode;
@@ -45,9 +47,9 @@ public class RenderletDefinition {
private Pattern modePattern;
private MediaType mediaType;
private boolean builtIn;
- private MGraph configGraph;
+ private LockableMGraph configGraph;
- public RenderletDefinition(BNode renderletDefinition, MGraph
configGraph) {
+ public RenderletDefinition(BNode renderletDefinition, LockableMGraph
configGraph) {
this.configGraph = configGraph;
this.rederletDefinition = renderletDefinition;
renderlet = getRenderletName(renderletDefinition);
@@ -145,13 +147,19 @@ public class RenderletDefinition {
private String getRenderletName(Resource renderletDef) {
- Iterator<Triple> renderletModeIter = configGraph.filter(
- (NonLiteral) renderletDef,
TYPERENDERING.renderlet, null);
- if (renderletModeIter.hasNext()) {
- TypedLiteral renderletMode = (TypedLiteral)
renderletModeIter.next().getObject();
- String renderletName =
LiteralFactory.getInstance().createObject(String.class,
- renderletMode);
- return renderletName;
+ Lock l = configGraph.getLock().readLock();
+ l.lock();
+ try {
+ Iterator<Triple> renderletModeIter = configGraph.filter(
+ (NonLiteral) renderletDef,
TYPERENDERING.renderlet, null);
+ if (renderletModeIter.hasNext()) {
+ TypedLiteral renderletMode = (TypedLiteral)
renderletModeIter.next().getObject();
+ String renderletName =
LiteralFactory.getInstance().createObject(String.class,
+ renderletMode);
+ return renderletName;
+ }
+ } finally {
+ l.unlock();
}
return null;
}