Field

Changeset 135:8c9e1ef94fa2

Show
Ignore:
Timestamp:
08/01/2008 10:26:50 AM (4 months ago)
Author:
marc@f1.local
branch:
default
Message:

serialized saving on exit, for #84

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • development/java/field/core/StandardFluidSheet.java

    r126 r135  
    280280 
    281281                        public void run() { 
    282                                 if (!(SystemProperties.getIntProperty("noSave", 0) == 1)) 
    283                                         try { 
    284                                                 String file = SystemProperties.getDirProperty("versioning.dir") + sheet.getFilename() + "/sheet.xml"; 
    285  
    286                                                 if (SystemProperties.getIntProperty("paranoidSave", 0) == 1) { 
    287                                                         int n = 0; 
    288                                                         while (new File(file + n).exists()) { 
    289                                                                 n++; 
    290                                                         } 
    291                                                         new File(file).renameTo(new File(file + n)); 
    292                                                 } 
    293                                                 System.out.println(" saving to <" + sheet.getFilename() + ">"); 
    294                                                 sheet.save(new BufferedWriter(new FileWriter(new File(file)), 1024 * 16 * 1024)); 
    295                                         } catch (Exception e) { 
    296                                                 e.printStackTrace(); 
    297                                         } 
     282 
     283                                singleThreadedSave(sheet); 
    298284                        } 
    299285 
     
    948934                return filename; 
    949935        } 
     936 
     937        static synchronized protected void singleThreadedSave(final StandardFluidSheet sheet) { 
     938                if (!(SystemProperties.getIntProperty("noSave", 0) == 1)) 
     939                        try { 
     940                                String file = SystemProperties.getDirProperty("versioning.dir") + sheet.getFilename() + "/sheet.xml"; 
     941 
     942                                if (SystemProperties.getIntProperty("paranoidSave", 0) == 1) { 
     943                                        int n = 0; 
     944                                        while (new File(file + n).exists()) { 
     945                                                n++; 
     946                                        } 
     947                                        new File(file).renameTo(new File(file + n)); 
     948                                } 
     949                                System.out.println(" saving to <" + sheet.getFilename() + ">"); 
     950                                sheet.save(new BufferedWriter(new FileWriter(new File(file)), 1024 * 16 * 1024)); 
     951                                System.out.println(" saving to <" + sheet.getFilename() + "> complete"); 
     952                        } catch (Exception e) { 
     953                                e.printStackTrace(); 
     954                        } 
     955        } 
    950956}