[jira] [Commented] (OFBIZ-12063) Replace java.io.File::renameTo by java.nio.file.Files::move

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-12063) Replace java.io.File::renameTo by java.nio.file.Files::move

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-12063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239590#comment-17239590 ]

ASF subversion and git services commented on OFBIZ-12063:
---------------------------------------------------------

Commit ce0b8903eac7795fd660f2fd3d0959c711ff0291 in ofbiz-framework's branch refs/heads/release17.12 from Jacques Le Roux
[ https://gitbox.apache.org/repos/asf?p=ofbiz-framework.git;h=ce0b890 ]

Fixed: Replace java.io.File::renameTo by java.nio.file.Files::move (OFBIZ-12063)

On Windows in EditProductContent.groovy neither file.renameTo(), Files.move()
nor FileUtils.moveFile works. Copy and delete works.


> Replace java.io.File::renameTo by java.nio.file.Files::move
> -----------------------------------------------------------
>
>                 Key: OFBIZ-12063
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-12063
>             Project: OFBiz
>          Issue Type: Bug
>          Components: product/catalog
>    Affects Versions: Trunk
>            Reporter: Jacques Le Roux
>            Assignee: Jacques Le Roux
>            Priority: Major
>             Fix For: 18.12.01, 17.12.05
>
>
> This is a bug because the behaviour is not assured on Windows for instance. So it's impossible to correctly develop and test.
> As explained at https://docs.oracle.com/javase/8/docs/api/java/io/File.html#renameTo-java.io.File-
> {quote}
> Renames the file denoted by this abstract pathname.
> Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.
> Note that the Files class defines the move method to move or rename a file in a platform independent manner.
> {quote}
> So the expression
> {code:java}
> file.renameTo(file1)
> {code}
> used in 5 Application Product Groovy scripts, can be easily replaced by
> {code:java}
> Path source = file.toPath()
> Files.move(source, source.resolveSibling(filenameToUse))
> {code}
> that is working on all platforms as explained at https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#move-java.nio.file.Path-java.nio.file.Path-java.nio.file.CopyOption...-



--
This message was sent by Atlassian Jira
(v8.3.4#803005)