[jira] Created: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

[jira] Created: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
[FileUtils] Return target File from copyFileToDirectory()
---------------------------------------------------------

                 Key: IO-157
                 URL: https://issues.apache.org/jira/browse/IO-157
             Project: Commons IO
          Issue Type: Improvement
          Components: Utilities
    Affects Versions: 1.4
            Reporter: Kenny MacLeod
            Priority: Minor


It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Resolved: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Niall Pemberton resolved IO-157.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0
         Assignee: Niall Pemberton

Fixed http://svn.apache.org/viewvc?view=rev&revision=661658

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Reopened: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jukka Zitting reopened IO-157:
------------------------------


Reopening, as this change breaks binary compatibility with IO 1.4.

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673697#action_12673697 ]

Niall Pemberton commented on IO-157:
------------------------------------

OK I reverted this:

http://svn.apache.org/viewvc?view=rev&revision=744725

Mailing list discussion is here:
http://commons.markmail.org/message/sfnp6cp6vl6k5okf


> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12797442#action_12797442 ]

Sebb commented on IO-157:
-------------------------

Not sure I understand why changing a method to return File rather than void can break binary compatibility.

Any existing code that uses the void method will still work; the return value will just be ignored.

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Resolved: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebb resolved IO-157.
---------------------

    Resolution: Fixed

Reapplied.

Binary incompatibility (if it was) is no longer a problem given that IO now needs Java 1.5

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12842404#action_12842404 ]

Niall Pemberton commented on IO-157:
------------------------------------

I also don't see how changing a return type from "void" to return something is going to ever break compatibility for someone. However nothing has changed since Stephens comment - we were already on Java 1.5 then and I don't see how upgrading to Java 1.5 makes any difference to this.

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Issue Comment Edited: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12842404#action_12842404 ]

Niall Pemberton edited comment on IO-157 at 3/7/10 11:13 AM:
-------------------------------------------------------------

I also don't see how changing a return type from "void" to return something is going to ever break compatibility for someone. However nothing has changed since Stephens comment - we were already on Java 1.5 then and I don't see how upgrading to Java 1.5 means binary incompatibility is no longer a problem?

      was (Author: niallp):
    I also don't see how changing a return type from "void" to return something is going to ever break compatibility for someone. However nothing has changed since Stephens comment - we were already on Java 1.5 then and I don't see how upgrading to Java 1.5 makes any difference to this.
 

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12842425#action_12842425 ]

Sebb commented on IO-157:
-------------------------

Sometimes what is obvious is not true ;-)

I decided to to test IO 2.0 with the test cases from IO 1.4.

Create the jars:

- mvn jar:test-jar in IO 1.4
- mvn jar:jar in IO 2.0

Then use JUnit command-line mode:

{code}
set CLASSPATH=junit-3.8.2.jar;commons-io-1.4-tests.jar;commons-io-2.0-SNAPSHOT.jar
java junit.textui.TestRunner org.apache.commons.io.FileUtilsTestCase
....
There were 2 errors:
1) testCopyFile1ToDir(org.apache.commons.io.FileUtilsTestCase)java.lang.NoSuchMethodError:
    org.apache.commons.io.FileUtils.copyFileToDirectory(Ljava/io/File;Ljava/io/File;)V
        at org.apache.commons.io.FileUtilsTestCase.testCopyFile1ToDir(FileUtilsTestCase.java:881)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
2) testCopyFile2ToDir(org.apache.commons.io.FileUtilsTestCase)java.lang.NoSuchMethodError:
    org.apache.commons.io.FileUtils.copyFileToDirectory(Ljava/io/File;Ljava/io/File;)V
        at org.apache.commons.io.FileUtilsTestCase.testCopyFile2ToDir(FileUtilsTestCase.java:906)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
{code}

Oops!

The return type IS part of the signature that the JVM looks for when resolving method calls.

So the jar is clearly not a drop-in replacement for IO 1.4

Note: the same test ran fine with commons-io-1.4.jar (as expected).

However, the suggestion still has merit.

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Reopened: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebb reopened IO-157:
---------------------

      Assignee:     (was: Niall Pemberton)

Reverted:

URL: http://svn.apache.org/viewvc?rev=919995&view=rev
Log:
Revert r919684 - not binary compatible

Modified:
   commons/proper/io/trunk/src/java/org/apache/commons/io/FileUtils.java

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Priority: Minor
>             Fix For: 2.0
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Updated: (IO-157) [FileUtils] Return target File from copyFileToDirectory()

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/IO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Niall Pemberton updated IO-157:
-------------------------------

    Fix Version/s: 2.x
                       (was: 2.0)

Re-consider this if/when we break compatibility

> [FileUtils] Return target File from copyFileToDirectory()
> ---------------------------------------------------------
>
>                 Key: IO-157
>                 URL: https://issues.apache.org/jira/browse/IO-157
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 1.4
>            Reporter: Kenny MacLeod
>            Priority: Minor
>             Fix For: 2.x
>
>
> It would be useful if the FileUtils.copyFileToDirectory() method returned the target file to which it does the copy.  Currently, it creates the target File object, passes it to copyFile(), and discards the reference.  This could just be returned from the method instead.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.