Hi, Jeff.  It does look like it would be nice for FileResource's (File)
constructors to set basedir.  I'm looking into this.

Matt

On Thu, Feb 9, 2012 at 4:19 PM, Jeffrey E Care <ca...@us.ibm.com> wrote:

> I was trying to track down some strange behavior in one of our custom
> resource collections and I think that I might have stumbled across a
> potential but in ResourceUtils. Specifically, in the "asFileResource"
> method:
>
>     /**
>      * Convenience method to turn any fileProvider into a basic
>      * FileResource with the file's immediate parent as the basedir,
>      * for tasks that need one.
>      * @param fileProvider input
>      * @return fileProvider if it is a FileResource instance, or a new
>      * FileResource with fileProvider's file.
>      * @since Ant 1.8
>      */
>     public static FileResource asFileResource(FileProvider fileProvider) {
>         if (fileProvider instanceof FileResource || fileProvider == null) {
>             return (FileResource) fileProvider;
>         }
>         FileResource result = new FileResource(fileProvider.getFile());
>         result.setProject(Project.getProject(fileProvider));
>         return result;
>     }
>
> This method purports to return a FileResource whose baseDir will be the
> parent of the file returned by the passed FileProvider. The only problem is
> that setBaseDir is never called on the new'ed up FileResource from this
> code path. Also, in the instanceof case there's no promise that the
> FileProvider cast to FileResource has a non-null basedir either.
>
> The fix for my collection was simply to set the basedir on all of its
> resources. I think the real fix here might be that the FileResource(File)
> constructor should also set the basedir on the FileResource to the passed
> File's parent? I'm not sure the best way to fix this but I think that
> something is clearly not right.
>   
> ____________________________________________________________________________________________
>  Jeffrey E. (Jeff) Care
> *ca...@us.ibm.com* <ca...@us.ibm.com>
>  IBM WebSphere Application Server
> WAS Release Engineering
>
>  [image: WebSphere Mosiac]
> [image: WebSphere Brandmark]
>
>

Reply via email to