Author: olamy
Date: Wed Oct  3 21:58:51 2012
New Revision: 1393789

URL: http://svn.apache.org/viewvc?rev=1393789&view=rev
Log:
close Stream in finally block

Modified:
    directmemory/lightning/trunk/lightning-core/pom.xml
    
directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java
    directmemory/lightning/trunk/pom.xml

Modified: directmemory/lightning/trunk/lightning-core/pom.xml
URL: 
http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/pom.xml?rev=1393789&r1=1393788&r2=1393789&view=diff
==============================================================================
--- directmemory/lightning/trunk/lightning-core/pom.xml (original)
+++ directmemory/lightning/trunk/lightning-core/pom.xml Wed Oct  3 21:58:51 2012
@@ -38,6 +38,11 @@
     </dependency>
 
     <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>org.ow2.asm</groupId>
       <artifactId>asm</artifactId>
       <scope>provided</scope>

Modified: 
directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java
URL: 
http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java?rev=1393789&r1=1393788&r2=1393789&view=diff
==============================================================================
--- 
directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java
 (original)
+++ 
directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java
 Wed Oct  3 21:58:51 2012
@@ -1,3 +1,5 @@
+package org.apache.directmemory.lightning.internal.generator;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -16,17 +18,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.directmemory.lightning.internal.generator;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.directmemory.lightning.Marshaller;
 import org.apache.directmemory.lightning.MarshallerStrategy;
 import org.apache.directmemory.lightning.SerializationStrategy;
@@ -43,6 +36,15 @@ import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.Type;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
 public class BytecodeMarshallerGenerator
     implements Opcodes, GeneratorConstants, MarshallerGenerator
 {
@@ -54,7 +56,8 @@ public class BytecodeMarshallerGenerator
                                           Map<Class<?>, Marshaller> 
marshallers,
                                           ClassDescriptorAwareSerializer 
serializer,
                                           SerializationStrategy 
serializationStrategy,
-                                          ObjectInstantiatorFactory 
objectInstantiatorFactory, File debugCacheDirectory )
+                                          ObjectInstantiatorFactory 
objectInstantiatorFactory,
+                                          File debugCacheDirectory )
     {
 
         try
@@ -66,9 +69,9 @@ public class BytecodeMarshallerGenerator
             Collections.sort( propertyDescriptorsCopy );
 
             // Build className e.g. "SomeTypeMarshaller$$X$$Lightning"
-            String className =
-                new StringBuilder( !type.isArray() ? type.getSimpleName() : 
type.getComponentType().getSimpleName()
-                    + "Array" ).append( "Marshaller" ).append( 
GENEREATED_CLASS_ID.getAndIncrement() ).append( "Lightning" ).toString();
+            String className = new StringBuilder(
+                !type.isArray() ? type.getSimpleName() : 
type.getComponentType().getSimpleName() + "Array" ).append(
+                "Marshaller" ).append( GENEREATED_CLASS_ID.getAndIncrement() 
).append( "Lightning" ).toString();
 
             // Build class
             cw.visit( V1_6, ACC_PUBLIC & ACC_SUPER, className, null, 
SUPER_CLASS_INTERNAL_TYPE, null );
@@ -94,9 +97,15 @@ public class BytecodeMarshallerGenerator
             {
                 File file = new File( debugCacheDirectory, className + 
".class" );
                 FileOutputStream out = new FileOutputStream( file );
-                out.write( bytecode );
-                out.flush();
-                out.close();
+                try
+                {
+                    out.write( bytecode );
+                    out.flush();
+                }
+                finally
+                {
+                    IOUtils.closeQuietly( out );
+                }
             }
 
             Class<? extends Marshaller> generatedClass = 
classloader.loadClass( bytecode );
@@ -110,8 +119,7 @@ public class BytecodeMarshallerGenerator
         }
         catch ( Exception e )
         {
-            throw new SerializerMarshallerGeneratorException(
-                                                              "Marshaller for 
type " + type + " could not be generated",
+            throw new SerializerMarshallerGeneratorException( "Marshaller for 
type " + type + " could not be generated",
                                                               e );
         }
     }
@@ -124,31 +132,27 @@ public class BytecodeMarshallerGenerator
             FieldVisitor fv = null;
 
             // Write PropertyDescriptor field
-            fv =
-                cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"descriptor", propertyDescriptor ),
-                               PROPERTYDESCRIPTOR_CLASS_DESCRIPTOR, null, null 
);
+            fv = cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"descriptor", propertyDescriptor ),
+                                PROPERTYDESCRIPTOR_CLASS_DESCRIPTOR, null, 
null );
             fv.visitEnd();
 
             if ( propertyDescriptor.getType().isArray()
                 && 
!propertyDescriptor.getType().getComponentType().isPrimitive() )
             {
                 // Write ComponentType PropertyDescriptor field
-                fv =
-                    cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"component", propertyDescriptor ),
-                                   
CHEATINGPROPERTYDESCRIPTOR_CLASS_DESCRIPTOR, null, null );
+                fv = cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"component", propertyDescriptor ),
+                                    
CHEATINGPROPERTYDESCRIPTOR_CLASS_DESCRIPTOR, null, null );
                 fv.visitEnd();
             }
 
             // Write Marshaller field
-            fv =
-                cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"marshaller", propertyDescriptor ),
-                               MARSHALLER_CLASS_DESCRIPTOR, null, null );
+            fv = cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"marshaller", propertyDescriptor ),
+                                MARSHALLER_CLASS_DESCRIPTOR, null, null );
             fv.visitEnd();
 
             // Write PropertyAccessor field
-            fv =
-                cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"accessor", propertyDescriptor ),
-                               PROPERTYACCESSOR_CLASS_DESCRIPTOR, null, null );
+            fv = cw.visitField( ACC_FINAL & ACC_PRIVATE, toFinalFieldName( 
"accessor", propertyDescriptor ),
+                                PROPERTYACCESSOR_CLASS_DESCRIPTOR, null, null 
);
             fv.visitEnd();
         }
     }
@@ -174,7 +178,8 @@ public class BytecodeMarshallerGenerator
         mv.visitVarInsn( ALOAD, 4 );
 
         // Call super(Class, Map)
-        mv.visitMethodInsn( INVOKESPECIAL, SUPER_CLASS_INTERNAL_TYPE, 
"<init>", MARSHALLER_SUPER_CONSTRUCTOR_SIGNATURE );
+        mv.visitMethodInsn( INVOKESPECIAL, SUPER_CLASS_INTERNAL_TYPE, "<init>",
+                            MARSHALLER_SUPER_CONSTRUCTOR_SIGNATURE );
 
         // Fill fields with marshallers
         for ( int i = 0; i < propertyDescriptors.size(); i++ )
@@ -390,7 +395,8 @@ public class BytecodeMarshallerGenerator
         mv.visitVarInsn( ALOAD, 4 );
 
         // Call Marshaller#marshall on properties marshaller
-        mv.visitMethodInsn( INVOKEINTERFACE, MARSHALLER_CLASS_INTERNAL_TYPE, 
"marshall", MARSHALLER_MARSHALL_SIGNATURE );
+        mv.visitMethodInsn( INVOKEINTERFACE, MARSHALLER_CLASS_INTERNAL_TYPE, 
"marshall",
+                            MARSHALLER_MARSHALL_SIGNATURE );
     }
 
     private void visitObjectArrayPropertyAccessorRead( MethodVisitor mv, 
String className,
@@ -475,7 +481,8 @@ public class BytecodeMarshallerGenerator
         mv.visitVarInsn( ALOAD, 4 );
 
         // Call Marshaller#marshall on properties marshaller
-        mv.visitMethodInsn( INVOKEINTERFACE, MARSHALLER_CLASS_INTERNAL_TYPE, 
"marshall", MARSHALLER_MARSHALL_SIGNATURE );
+        mv.visitMethodInsn( INVOKEINTERFACE, MARSHALLER_CLASS_INTERNAL_TYPE, 
"marshall",
+                            MARSHALLER_MARSHALL_SIGNATURE );
 
         // Test if loop ends
         mv.visitIincInsn( 7, 1 );
@@ -884,7 +891,8 @@ public class BytecodeMarshallerGenerator
 
     private String toFinalFieldName( String prefix, PropertyDescriptor 
propertyDescriptor )
     {
-        return new StringBuilder( prefix.toUpperCase() ).append( "_" ).append( 
propertyDescriptor.getPropertyName().toUpperCase() ).append( "_LIGHTNING" 
).toString();
+        return new StringBuilder( prefix.toUpperCase() ).append( "_" ).append(
+            propertyDescriptor.getPropertyName().toUpperCase() ).append( 
"_LIGHTNING" ).toString();
     }
 
     protected void visitSystemOutPrintln( MethodVisitor mv, int stackPosition )

Modified: directmemory/lightning/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/directmemory/lightning/trunk/pom.xml?rev=1393789&r1=1393788&r2=1393789&view=diff
==============================================================================
--- directmemory/lightning/trunk/pom.xml (original)
+++ directmemory/lightning/trunk/pom.xml Wed Oct  3 21:58:51 2012
@@ -200,6 +200,12 @@
       </dependency>
 
       <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>2.4</version>
+      </dependency>
+
+      <dependency>
         <groupId>org.apache.maven.plugin-testing</groupId>
         <artifactId>maven-plugin-testing-harness</artifactId>
         <version>2.0-alpha-1</version>


Reply via email to