[ 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)