Uploaded image for project: 'Commons Configuration'
  1. Commons Configuration
  2. CONFIGURATION-89

[configuration] Setting the reloading strategy to FileChangedReloadingStrategy erases entire configuration

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.1
    • Fix Version/s: 1.2
    • Component/s: None
    • Labels:
      None
    • Environment:

      Operating System: Windows XP
      Platform: PC

    • Bugzilla Id:
      34441

      Description

      When setting a PropertiesConfiguration reloading strategy to
      FileChangedReloadingStrategy - the entire configuration is erased.

      The problem is that when the FileChangedReloadingStrategy is set, the
      configuration file is erased and then reloaded and then written out.

      The file is erased in AbstractFileConfiguration.save(File) when a new
      FileOutputStream is created. Then in the PropertiesConfiguration.save(Writer)
      the call to getKeys() causes a reaload() to occur (which the strategy says needs
      to be reloaded because it has been modified). But the saved config file is now
      zeroed out by the new file stream, and it is read in as an empty config.

      Here is a testcase that exposed this defect:

      public void
      testPropertiesConfigurationWithFileChangedReloadingStrategyDefect() throws
      ConfigurationException, FileNotFoundException, IOException

      { FileWriter file = new FileWriter("testfile.properties"); file.write("a=1"); file.close(); FileConfiguration config = new PropertiesConfiguration("testfile.properties"); config.setAutoSave(true); config.setReloadingStrategy(new FileChangedReloadingStrategy()); assertEquals("1", config.getString("a")); config.setProperty("2", "b"); assertEquals("1", config.getString("a")); }

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              bsoutham@gmail.com Blaine R Southam
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: