reduce data copy and close sequence

Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/f530cfee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/f530cfee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/f530cfee

Branch: refs/heads/master
Commit: f530cfee3795235ab730843a84c0b703e907d6f8
Parents: 35664a3
Author: Kevin Xu <[email protected]>
Authored: Mon Jan 18 15:55:19 2016 +0800
Committer: Kevin Xu <[email protected]>
Committed: Mon Jan 18 15:55:19 2016 +0800

----------------------------------------------------------------------
 .../src/main/java/org/trafodion/libmgmt/FileMgmt.java     | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/f530cfee/core/sql/lib_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
----------------------------------------------------------------------
diff --git 
a/core/sql/lib_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java 
b/core/sql/lib_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
index 8dd8f4e..94f7d65 100644
--- a/core/sql/lib_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
+++ b/core/sql/lib_mgmt/src/main/java/org/trafodion/libmgmt/FileMgmt.java
@@ -413,17 +413,19 @@ public class FileMgmt {
                                fos = new FileOutputStream(fname, (appendFlag 
== 0));
                                channel = fos.getChannel();
                                lock = channel.tryLock();
-                               fos.write(Arrays.copyOf(data, data.length));
-                               fos.flush();
+                               if (lock != null) {
+                                       fos.write(data);
+                                       fos.flush();
+                               }
                        } finally {
-                               if (fos != null)
-                                       fos.close();
                                if(lock != null){
                                        lock.release();
                                }
                                if(channel !=null){
                                        channel.close();
                                }
+                               if (fos != null)
+                                       fos.close();
                        }
 
                        syncJar(userPath, fileName);

Reply via email to