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 {


Reply via email to