[
https://issues.apache.org/jira/browse/IVY-1464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Pfeiffer updated IVY-1464:
----------------------------------
Attachment: not-found.patch
> Inconsistency between local and remote <properties>
> ---------------------------------------------------
>
> Key: IVY-1464
> URL: https://issues.apache.org/jira/browse/IVY-1464
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.3.0
> Reporter: Carsten Pfeiffer
> Priority: Minor
> Labels: patch
> Attachments: not-found.patch
>
>
> When using a {{<properties>}} element in an {{ivysettings.xml}} ivy behaves
> differently when the referenced properties file does not exist.
> In case the properties file is local, a {{FileNotFoundException}} is caught
> and only a warning is logged (i.e. non-fatal).
> In case the file is remote, only a generic {{IOException}} occurs, which
> fails the build.
> Not sure how to best fix this. One fix would be like this:
> {code}
> try {
> URL fileUrl = urlFromFileAttribute(propFilePath);
> try {
> ivy.loadProperties(fileUrl, override);
> } catch (FileNotFoundException ex) {
> throw ex;
> } catch (IOException ex) {
> try {
> URLConnection connection = fileUrl.openConnection();
> if (connection instanceof HttpURLConnection) {
> int code = ((HttpURLConnection) connection).getResponseCode();
> if (code == 404) {
> // file does not exist, just log a warning like in the
> local file
> // case
> Message.verbose("Unable to download property file (404
> not found): "
> + propFilePath);
> return;
> }
> }
> } catch (Exception e) {
> // ignore all follow up errors and throw the original exception
> instead
> }
> throw ex;
> }
> } catch (FileNotFoundException e) {
> Message.verbose("Unable to find property file: " + propFilePath);
> }
> {code}
> If you want to spare the second attempt to download the file when the
> exception occurs, you would have to refactor {{IvySettings.loadProperties()}}
> a bit.
--
This message was sent by Atlassian JIRA
(v6.2#6252)