[
https://issues.apache.org/jira/browse/CONFIGURATION-788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17071820#comment-17071820
]
Gary D. Gregory edited comment on CONFIGURATION-788 at 3/31/20, 2:12 PM:
-------------------------------------------------------------------------
Hi [~cnoamik]
WRT
https://issues.apache.org/jira/browse/CONFIGURATION-788?focusedCommentId=17071156&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17071156
If you look at the POM, you'll see that Commons Configuration requires Java 8
or higher. No any talk or work about Java 5 through 7 is a waste.
was (Author: garydgregory):
Hi [~cnoamik]
If you look at the POM, you'll see that Commons Configuration requires Java 8
or higher. No any talk or work about Java 5 through 7 is a waste.
> AbstractHierarchicalFileConfiguration can lose data when #save() is
> interrupted by JVM abort/power failure
> ----------------------------------------------------------------------------------------------------------
>
> Key: CONFIGURATION-788
> URL: https://issues.apache.org/jira/browse/CONFIGURATION-788
> Project: Commons Configuration
> Issue Type: Bug
> Components: File reloading
> Affects Versions: 1.10
> Environment: This occurs in any environment with any use of
> AbstractFileConfiguration#save(), AbstractFileConfiguration#save(URL) or
> AbstractFileConfiguration#save(File).
> Reporter: Michael Noack
> Priority: Major
> Labels: newbie
> Attachments:
> 0001-Implemented-keep-backup-feature-for-file-configurati.patch,
> 0002-CHANGED-AbstractFileConfiguration-Fixed-potential-NP.patch
>
>
> When saving the current configuration, either using any of the #save()
> Methods or when setting a property while auto-save is enabled the method
> AbstractFileConfiguration#save(URL) effectively wipes the file content when
> opening the OutputStream.
> If the JVM gets destroyed or the machine powered down before the new
> configuration has been serialized to the file an empty file remains with no
> configuration at all.
>
> I've created a patch on top of the RELEASE_1_10_BRANCH which introduces a
> mitigation. The mitigation consists of a "keep backup" flag in
> AbstractFileConfiguration which, if set, creates a copy of the current
> configuration file before writing into it.
> When a configuration exception occurs upon loading the configuration again
> the exception will be caught and loading of the backup is attempted first
> before rethrowing the exception when this fails as well.
> To allow existing implementations to profit from this without touching all
> instances a global flag has been added to
> AbstractHierarchicalFileConfiguration which is then inherited by all future
> delegates added to any instance of AbstractHierarchicalFileConfiguration.
> Four unit tests for this mitigation feature have been added to
> TestHierarchicalXMLConfiguration.
> I've uploaded a repository with the commit to github:
> https://github.com/noamik/commons-configuration/tree/RELEASE_1_11_BRANCH
--
This message was sent by Atlassian Jira
(v8.3.4#803005)