From 4c97aafc7a9b6f4d60f3290afe9499d994cc76cb Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Mon, 9 Nov 2020 08:31:35 +0100 Subject: Debug preprocessing issue Catch exception actually thrown by preprocessing code --- .../model/application/provider/FilesApplicationPackage.java | 8 ++++++++ .../com/yahoo/vespa/config/server/session/SessionPreparer.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java index 1bdedc503bf..91ff1c6d339 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java @@ -48,6 +48,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.io.StringReader; +import java.nio.file.Files; import java.security.MessageDigest; import java.util.ArrayList; import java.util.Arrays; @@ -61,6 +62,7 @@ import java.util.Optional; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import static com.yahoo.text.Lowercase.toLowerCase; @@ -614,6 +616,12 @@ public class FilesApplicationPackage implements ApplicationPackage { transformer.transform(new DOMSource(document), new StreamResult(outputStream)); } } catch (TransformerException |ParserConfigurationException | SAXException e) { + // TODO: 2020-11-09, debugging what seems like missing or empty file while preprocessing. Remove afterwards + if (inputXml.canRead()) { + log.log(Level.WARNING, "Error preprocessing " + inputXml.getAbsolutePath() + ", file content: " + IOUtils.readFile(inputXml)); + java.nio.file.Path dir = inputXml.getParentFile().toPath(); + log.log(Level.INFO, "Files in " + dir + ":" + Files.list(dir).map(java.nio.file.Path::toString).collect(Collectors.joining(","))); + } throw new RuntimeException("Error preprocessing " + inputXml.getAbsolutePath() + ": " + e.getMessage(), e); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index 9b82cafcb49..8b9f2f084e1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -248,7 +248,7 @@ public class SessionPreparer { void preprocess() { try { this.preprocessedApplicationPackage = applicationPackage.preprocess(properties.zone(), logger); - } catch (IOException | TransformerException | ParserConfigurationException | SAXException e) { + } catch (IOException | TransformerException | ParserConfigurationException | SAXException | RuntimeException e) { throw new IllegalArgumentException("Error preprocessing application package for " + applicationId, e); } checkTimeout("preprocess"); -- cgit v1.2.3