[
https://issues.apache.org/jira/browse/ZOOKEEPER-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13848935#comment-13848935
]
Rakesh R commented on ZOOKEEPER-1835:
-------------------------------------
Hi Bruno,
Can we refactor 'BufferedWriter bw = null' logic as follows:
{code}
} else {
// prepare writer
BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(out));
//......
// execute writer operation
wStmt.write(bw);
bw.flush();
{code}
Also, I just noticed the exception blocks in the patch. Both 'IOException' and
'RuntimeException' handles the exception in the same way, aborting and throw
back exception to the caller. Instead of having multiple blocks, I think we can
simplify this by catching 'Exception or Throwable' and handle it.
> dynamic configuration file renaming fails on Windows
> ----------------------------------------------------
>
> Key: ZOOKEEPER-1835
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1835
> Project: ZooKeeper
> Issue Type: Bug
> Components: quorum
> Affects Versions: 3.5.0
> Environment: Windows 7 64-bit, Oracle Java 1.6.0_32-b05
> Reporter: Bruno Freudensprung
> Attachments: ZOOKEEPER-1835.patch
>
>
> On Windows, reconfig fails to rename the tmp dynamic config file to the real
> dynamic config filename.
> Javadoc of java.io.File.renameTo says the behavior is highly plateform
> dependent, so I guess this should not be a big surprise.
> The problem occurs in
> src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java that
> could be modified like this:
> + curFile.delete();
> if (!tmpFile.renameTo(curFile)) {
> + configFile.delete();
> if (!tmpFile.renameTo(configFile)) {
> As suggested by Alex in https://issues.apache.org/jira/browse/ZOOKEEPER-1691
> (btw there is more information about my test scenario over there) it is a bit
> "scary" to delete the current configuration file.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)