make syncService closeable
authoryoonki.park <yoonki.park@samsung.com>
Thu, 4 Apr 2013 14:38:47 +0000 (23:38 +0900)
committeryoonki.park <yoonki.park@samsung.com>
Thu, 4 Apr 2013 14:38:47 +0000 (23:38 +0900)
Change-Id: I9a78d3af55d2faa06069d4aec561f92e8bae7132
Signed-off-by: yoonki.park <yoonki.park@samsung.com>
org.tizen.common.sdblib/src/org/tizen/sdblib/SyncService.java

index e29abc5..b8b682f 100755 (executable)
@@ -16,6 +16,7 @@
 
 package org.tizen.sdblib;
 
+import java.io.Closeable;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -36,7 +37,7 @@ import org.tizen.sdblib.SyncService.ISyncProgressMonitor;
  * <p/>
  * To get a {@link SyncService} object, use {@link Device#getSyncService()}.
  */
-public final class SyncService {
+public final class SyncService implements Closeable {
 
     private final static byte[] ID_OKAY = { 'O', 'K', 'A', 'Y' };
     private final static byte[] ID_FAIL = { 'F', 'A', 'I', 'L' };
@@ -268,6 +269,7 @@ public final class SyncService {
     public void close() {
         if (mChannel != null) {
             try {
+                sync_quit();
                 mChannel.close();
             } catch (IOException e) {
                 // nothing to be done really...
@@ -930,7 +932,6 @@ public final class SyncService {
             // check we have the proper data back
             if (checkResult(pullResult, ID_DATA) == false &&
                     checkResult(pullResult, ID_DONE) == false) {
-                sync_quit();
                 return new SyncResult(RESULT_CONNECTION_ERROR);
             }
         } catch (UnsupportedEncodingException e) {
@@ -1011,8 +1012,6 @@ public final class SyncService {
             fos.flush();
         } catch (IOException e) {
             return new SyncResult(RESULT_FILE_WRITE_ERROR, e);
-        } finally {
-            sync_quit();
         }
 
         return new SyncResult(RESULT_OK);
@@ -1151,7 +1150,6 @@ public final class SyncService {
             byte[] remotePathContent = remotePath.getBytes(SdbHelper.UTF_ENCODING);
 
             if (remotePathContent.length > REMOTE_PATH_MAX_LENGTH) {
-                sync_quit();
                 return new SyncResult(RESULT_REMOTE_PATH_LENGTH);
             }
 
@@ -1159,7 +1157,6 @@ public final class SyncService {
 
             // this shouldn't happen but still...
             if (f.exists() == false) {
-                sync_quit();
                 return new SyncResult(RESULT_NO_LOCAL_FILE);
             }
 
@@ -1195,7 +1192,6 @@ public final class SyncService {
         while (true) {
             // check if we're canceled
             if (monitor.isCanceled() == true) {
-                sync_quit();
                 return new SyncResult(RESULT_CANCELED);
             }
 
@@ -1264,7 +1260,6 @@ public final class SyncService {
                     // output the result?
                     String message = new String(mBuffer, 0, len);
                     Log.e("sdb", "transfer error: " + message);
-                    sync_quit();
                     return new SyncResult(RESULT_UNKNOWN_ERROR, message);
                 }
 
@@ -1275,7 +1270,7 @@ public final class SyncService {
         } catch (IOException e) {
             return new SyncResult(RESULT_CONNECTION_ERROR, e);
         }
-        sync_quit();
+
         return new SyncResult(RESULT_OK);
     }