You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2007/07/01 23:57:46 UTC

svn commit: r552366 - /directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/ConnectionManager.java

Author: seelmann
Date: Sun Jul  1 14:57:45 2007
New Revision: 552366

URL: http://svn.apache.org/viewvc?view=rev&rev=552366
Log:
DIRSTUDIO-101: Flush file before copying it. Use temp file if real file is corrupt. 

Modified:
    directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/ConnectionManager.java

Modified: directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/ConnectionManager.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/ConnectionManager.java?view=diff&rev=552366&r1=552365&r2=552366
==============================================================================
--- directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/ConnectionManager.java (original)
+++ directory/studio/trunk/studio-ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/ConnectionManager.java Sun Jul  1 14:57:45 2007
@@ -543,8 +543,23 @@
         }
         catch ( Exception e )
         {
-            e.printStackTrace();
-            return null;
+            // if loading failed, try with temp file
+            String tempFilename = filename + "-temp";
+            try
+            {
+                XMLDecoder decoder = new XMLDecoder( new BufferedInputStream( ( new FileInputStream( tempFilename ) ) ) );
+                Object object = decoder.readObject();
+                decoder.close();
+                return object;
+            }
+            catch ( IOException ioe2 )
+            {
+                return null;
+            }
+            catch ( Exception e2 )
+            {
+                return null;
+            }
         }
     }
 
@@ -574,6 +589,7 @@
                 }
             } );
             encoder.writeObject( object );
+            encoder.close();
             
             // move temp file to good file
             File file = new File( filename );