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

Nicolas Lalevée resolved IVYDE-348.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: trunk
         Assignee: Nicolas Lalevée

Fixed, thanks for the report.

> Error on retrieving artitfacts to project root
> ----------------------------------------------
>
>                 Key: IVYDE-348
>                 URL: https://issues.apache.org/jira/browse/IVYDE-348
>             Project: IvyDE
>          Issue Type: Bug
>          Components: workspace resolver
>    Affects Versions: 2.2.0.beta1
>            Reporter: Kieran Shanley
>            Assignee: Nicolas Lalevée
>            Priority: Minor
>             Fix For: trunk
>
>
> I have a retrieve pattern to retrieve a WAR file to the root of my EAR 
> project. (JBOSS7 wants all sub modules to be in the root of the EAR). ivyDE 
> correctly retrieves the artifact but when it attempts to refresh the eclipse 
> work space an error is reported:
> Path must include project and resource name :/EarProject <= this is the 
> project name.
> I looked at the source code and the error appears to be in IvyResolver.java
>         int numberOfItemsRetrieved = ivy.retrieve(md.getModuleRevisionId(), 
> pattern, options);
>         if (numberOfItemsRetrieved > 0) {
>             // Only refresh if we actually retrieved a file.
>             IFolder retrieveFolder = project.getFolder(refreshPath);          
>                   
>             RefreshFolderJob refreshFolderJob = new 
> RefreshFolderJob(retrieveFolder);
>             refreshFolderJob.schedule();
>         }
> Error is caused by the call to project.getFolder(); In the case where the 
> artifact has been resolved to the root dir shouldnt the code attempt to 
> refresh the project ?
> Here is my suggested fix:
> if (numberOfItemsRetrieved > 0) {
>         // Only refresh if we actually retrieved a file.
>         if (refreshPath.length() > 0) {
>             // refresh folder into which artifact was retrieved
>             IFolder retrieveFolder = project.getFolder(refreshPath) 
> ;
>             IvyDEMessage.verbose("Refreshing Eclipse folder " + 
> retrieveFolder); 
>             RefreshFolderJob refreshFolderJob = new 
> RefreshFolderJob(retrieveFolder);
>             refreshFolderJob.schedule();
>         } else {
>            // refresh the project if the artifact is in the root dir
>            project.refreshLocal();
>         }    
>  }



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to