Author: mir
Date: Mon Aug 30 09:15:52 2010
New Revision: 990736
URL: http://svn.apache.org/viewvc?rev=990736&view=rev
Log:
CLEREZZA-290: added missing locks
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content.representations/org.apache.clerezza.platform.content.representations.core/src/main/java/org/apache/clerezza/platform/content/representations/core/ThumbnailService.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content.representations/org.apache.clerezza.platform.content.representations.core/src/main/java/org/apache/clerezza/platform/content/representations/core/ThumbnailService.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content.representations/org.apache.clerezza.platform.content.representations.core/src/main/java/org/apache/clerezza/platform/content/representations/core/ThumbnailService.java?rev=990736&r1=990735&r2=990736&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content.representations/org.apache.clerezza.platform.content.representations.core/src/main/java/org/apache/clerezza/platform/content/representations/core/ThumbnailService.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content.representations/org.apache.clerezza.platform.content.representations.core/src/main/java/org/apache/clerezza/platform/content/representations/core/ThumbnailService.java
Mon Aug 30 09:15:52 2010
@@ -131,11 +131,21 @@ public class ThumbnailService implements
return Response.seeOther(
URI.create((thumbnailUri).getUnicodeString())).build();
}
-
- Iterator<Resource> mediaTypes =
infoBitNode.getObjects(DISCOBITS.mediaType);
- if (mediaTypes.hasNext()) {
+
+ TypedLiteral mediaTypeLiteral = null;
+ Lock readLock = infoBitNode.readLock();
+ readLock.lock();
+ try {
+ Iterator<Resource> mediaTypes =
infoBitNode.getObjects(DISCOBITS.mediaType);
+ if (mediaTypes.hasNext()) {
+ mediaTypeLiteral = (TypedLiteral)
mediaTypes.next();
+ }
+ } finally {
+ readLock.unlock();
+ }
+ if (mediaTypeLiteral != null) {
MediaType mediaType =
MediaType.valueOf(LiteralFactory.getInstance().createObject(
- String.class, (TypedLiteral)
mediaTypes.next()));
+ String.class, mediaTypeLiteral));
// if the infoBit is an image, create a thumbnail on
the fly.
if (mediaType.getType().startsWith("image")) {
try {