Author: tommaso
Date: Thu Jun 30 13:16:10 2016
New Revision: 1750795

URL: http://svn.apache.org/viewvc?rev=1750795&view=rev
Log:
SLING-5817 - data file reader is always closed

Modified:
    
sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java

Modified: 
sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java?rev=1750795&r1=1750794&r2=1750795&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java
 (original)
+++ 
sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java
 Thu Jun 30 13:16:10 2016
@@ -187,14 +187,18 @@ public class AvroContentSerializer imple
     private Collection<AvroShallowResource> readAvroResources(byte[] bytes) 
throws IOException {
         DatumReader<AvroShallowResource> datumReader = new 
SpecificDatumReader<AvroShallowResource>(AvroShallowResource.class);
         DataFileReader<AvroShallowResource> dataFileReader = new 
DataFileReader<AvroShallowResource>(new SeekableByteArrayInput(bytes), 
datumReader);
-        AvroShallowResource avroResource = null;
         Collection<AvroShallowResource> avroResources = new 
LinkedList<AvroShallowResource>();
-        while (dataFileReader.hasNext()) {
+        try {
+            AvroShallowResource avroResource = null;
+            while (dataFileReader.hasNext()) {
 // Reuse avroResource object by passing it to next(). This saves us from
 // allocating and garbage collecting many objects for files with
 // many items.
-            avroResource = dataFileReader.next(avroResource);
-            avroResources.add(avroResource);
+                avroResource = dataFileReader.next(avroResource);
+                avroResources.add(avroResource);
+            }
+        } finally {
+            dataFileReader.close();
         }
         return avroResources;
     }


Reply via email to