[exo-jcr-commits] exo-jcr SVN: r4436 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri May 27 06:39:22 EDT 2011


Author: tolusha
Date: 2011-05-27 06:39:22 -0400 (Fri, 27 May 2011)
New Revision: 4436

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java
Log:
EXOJCR-1200: PROBLEMS during load testing *WARN * [Thread-72] LazyTextExtractorField: Exception reading value for field: Stream closed

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java	2011-05-27 07:49:03 UTC (rev 4435)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java	2011-05-27 10:39:22 UTC (rev 4436)
@@ -81,34 +81,39 @@
    {
       if (extract == null)
       {
-         StringBuffer textExtract = new StringBuffer();
-         char[] buffer = new char[1024];
-         int len;
-         try
+         synchronized (this)
          {
-            while ((len = reader.read(buffer)) > -1)
+            if (extract == null)
             {
-               textExtract.append(buffer, 0, len);
+               StringBuffer textExtract = new StringBuffer();
+               char[] buffer = new char[1024];
+               int len;
+               try
+               {
+                  while ((len = reader.read(buffer)) > -1)
+                  {
+                     textExtract.append(buffer, 0, len);
+                  }
+               }
+               catch (IOException e)
+               {
+                  log.warn("Exception reading value for field: " + e.getMessage());
+                  log.debug("Dump:", e);
+               }
+               finally
+               {
+                  try
+                  {
+                     reader.close();
+                  }
+                  catch (IOException e)
+                  {
+                     log.error(e.getLocalizedMessage(), e);
+                  }
+               }
+               extract = textExtract.toString();
             }
          }
-         catch (IOException e)
-         {
-            log.warn("Exception reading value for field: " + e.getMessage());
-            log.debug("Dump:", e);
-         }
-         finally
-         {
-            //IOUtils.closeQuietly(reader);
-            try
-            {
-               reader.close();
-            }
-            catch (IOException e)
-            {
-               log.error(e.getLocalizedMessage(), e);
-            }
-         }
-         extract = textExtract.toString();
       }
       return extract;
    }



More information about the exo-jcr-commits mailing list