# HG changeset patch # User Sascha L. Teichmann # Date 1407833873 -7200 # Node ID 7ede7904c8a5cd24b529bbe8391b86840f524efe # Parent 75e62ea0e3073ce87df32c2d690e0e48ce07ea18 Be more tolerant with not existing artifact configurations. diff -r 75e62ea0e307 -r 7ede7904c8a5 artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java Mon Aug 11 17:18:36 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java Tue Aug 12 10:57:53 2014 +0200 @@ -206,8 +206,8 @@ protected void configureTransitions(Document config, RiverContext context) { TransitionEngine engine = new TransitionEngine(); - Document[] artifacts = getArtifactConfigurations(config); - logger.info("Found " + artifacts.length + " artifacts in the config."); + List artifacts = getArtifactConfigurations(config); + logger.info("Found " + artifacts.size() + " artifacts in the config."); for (Document doc: artifacts) { @@ -248,13 +248,13 @@ * * @return an array of Artifact configurations. */ - protected Document[] getArtifactConfigurations(Document config) { + protected List getArtifactConfigurations(Document config) { NodeList artifacts = (NodeList) XMLUtils.xpath( config, XPATH_ARTIFACTS, XPathConstants.NODESET); int count = artifacts.getLength(); - Document[] artifactDocs = new Document[count]; + ArrayList docs = new ArrayList(count); for (int i = 0; i < count; i++) { Element tmp = (Element) artifacts.item(i); @@ -262,11 +262,18 @@ String xlink = tmp.getAttribute(XPATH_XLINK); xlink = Config.replaceConfigDir(xlink); - File artifactFile = new File(xlink); - artifactDocs[i] = XMLUtils.parseDocument(artifactFile); + File file = new File(xlink); + if (!file.isFile() || !file.canRead()) { + logger.warn("Artifact configuration '" + file + "' not found."); + continue; + } + + Document doc = XMLUtils.parseDocument(file); + if (doc != null) { + docs.add(doc); + } } - - return artifactDocs; + return docs; } @@ -279,8 +286,8 @@ protected void configureStates(Document config, RiverContext context) { StateEngine engine = new StateEngine(); - Document[] artifacts = getArtifactConfigurations(config); - logger.info("Found " + artifacts.length + " artifacts in the config."); + List artifacts = getArtifactConfigurations(config); + logger.info("Found " + artifacts.size() + " artifacts in the config."); for (Document doc: artifacts) { List states = new ArrayList();