branch, master, updated. d106f950fee98979df8f92537f47d5aea361b869

The branch, master has been updated via d106f950fee98979df8f92537f47d5aea361b869 (commit) from b228e86a5cee41e0617ba04a8350754a011d491a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=d106f950fee98979df8f92537... http://github.com/ceki/logback/commit/d106f950fee98979df8f92537f47d5aea361b8... commit d106f950fee98979df8f92537f47d5aea361b869 Author: Ceki Gulcu <ceki@qos.ch> Date: Tue Dec 1 23:30:17 2009 +0100 Fixed http://jira.qos.ch/browse/LBCORE-122 diff --git a/logback-core/src/main/java/ch/qos/logback/core/joran/action/IncludeAction.java b/logback-core/src/main/java/ch/qos/logback/core/joran/action/IncludeAction.java index fc6af03..ffd8528 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/joran/action/IncludeAction.java +++ b/logback-core/src/main/java/ch/qos/logback/core/joran/action/IncludeAction.java @@ -36,7 +36,6 @@ public class IncludeAction extends Action { private static final String FILE_ATTR = "file"; private static final String URL_ATTR = "url"; private static final String RESOURCE_ATTR = "resource"; - private String attributeInUse; @@ -45,7 +44,7 @@ public class IncludeAction extends Action { throws ActionException { SaxEventRecorder recorder = new SaxEventRecorder(); - + this.attributeInUse = null; if (!checkAttributes(attributes)) { @@ -57,20 +56,27 @@ public class IncludeAction extends Action { try { if (in != null) { parseAndRecord(in, recorder); - in.close(); } } catch (JoranException e) { addError("Error while parsing " + attributeInUse, e); - } catch (IOException e) { - // called if in.close did not work + } finally { + close(in); } - // remove the <included> tag from the beginning and </included> from the end trimHeadAndTail(recorder); - + ec.getJoranInterpreter().addEventsDynamically(recorder.saxEventList); } + void close(InputStream in) { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + } + } + } + private boolean checkAttributes(Attributes attributes) { String fileAttribute = attributes.getValue(FILE_ATTR); String urlAttribute = attributes.getValue(URL_ATTR); @@ -170,13 +176,13 @@ public class IncludeAction extends Action { private void trimHeadAndTail(SaxEventRecorder recorder) { // Let's remove the two <included> events before // adding the events to the player. - + List<SaxEvent> saxEventList = recorder.saxEventList; - + if (saxEventList.size() == 0) { return; } - + SaxEvent first = saxEventList.get(0); if (first != null && first.qName.equalsIgnoreCase(INCLUDED_TAG)) { saxEventList.remove(0); @@ -188,7 +194,8 @@ public class IncludeAction extends Action { } } - private void parseAndRecord(InputStream inputSource, SaxEventRecorder recorder) throws JoranException { + private void parseAndRecord(InputStream inputSource, SaxEventRecorder recorder) + throws JoranException { recorder.setContext(context); recorder.recordEvents(inputSource); } diff --git a/logback-core/src/test/input/joran/inclusion/invalid.xml b/logback-core/src/test/input/joran/inclusion/invalid.xml index 5eaa0b2..0519ecb 100644 --- a/logback-core/src/test/input/joran/inclusion/invalid.xml +++ b/logback-core/src/test/input/joran/inclusion/invalid.xml @@ -1,8 +1 @@ -<included> - <!-- This file is invalid on purpose. Do not correct it --> - - <inc increment="1"> - - <inc increment="1"/> - -</included> \ No newline at end of file + \ No newline at end of file diff --git a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java index 2979429..c4e1cdf 100644 --- a/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java +++ b/logback-core/src/test/java/ch/qos/logback/core/joran/action/IncludeActionTest.java @@ -16,7 +16,11 @@ package ch.qos.logback.core.joran.action; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.io.File; +import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.net.MalformedURLException; import java.net.UnknownHostException; import java.util.HashMap; @@ -34,6 +38,8 @@ import ch.qos.logback.core.joran.spi.JoranException; import ch.qos.logback.core.joran.spi.Pattern; import ch.qos.logback.core.status.Status; import ch.qos.logback.core.status.StatusChecker; +import ch.qos.logback.core.testUtil.RandomUtil; +import ch.qos.logback.core.util.CoreTestConstants; import ch.qos.logback.core.util.StatusPrinter; public class IncludeActionTest { @@ -68,6 +74,8 @@ public class IncludeActionTest { static final String INCLUDED_AS_RESOURCE = "asResource/joran/inclusion/includedAsResource.xml"; + int diff = RandomUtil.getPositiveInt(); + public IncludeActionTest() { HashMap<Pattern, Action> rulesMap = new HashMap<Pattern, Action>(); rulesMap.put(new Pattern("x"), new NOPAction()); @@ -106,7 +114,7 @@ public class IncludeActionTest { verifyConfig(2); } - @Test + @Test public void basicURL() throws JoranException { System.setProperty(INCLUDE_KEY, URL_TO_INCLUDE); tc.doConfigure(TOP_BY_URL); @@ -124,14 +132,35 @@ public class IncludeActionTest { } @Test - public void withCorruptFile() throws JoranException { - System.setProperty(INCLUDE_KEY, INVALID); + public void withCorruptFile() throws JoranException, IOException { + String tmpOut = copyToTemp(INVALID); + System.setProperty(INCLUDE_KEY, tmpOut); tc.doConfigure(TOP_BY_FILE); assertEquals(Status.ERROR, context.getStatusManager().getLevel()); StatusChecker sc = new StatusChecker(context.getStatusManager()); assertTrue(sc.containsException(SAXParseException.class)); + + // we like to erase the temp file in order to see + // if http://jira.qos.ch/browse/LBCORE-122 was fixed + File f = new File(tmpOut); + assertTrue(f.exists()); + assertTrue(f.delete()); + } + String copyToTemp(String in) throws IOException { + FileInputStream fis = new FileInputStream(in); + String out = CoreTestConstants.OUTPUT_DIR_PREFIX+"out"+diff; + FileOutputStream fos = new FileOutputStream(out); + int b; + while((b=fis.read()) != -1) { + fos.write(b); + } + fis.close(); + fos.close(); + return out; + } + @Test public void malformedURL() throws JoranException { System.setProperty(INCLUDE_KEY, "htp://logback.qos.ch"); @@ -169,11 +198,18 @@ public class IncludeActionTest { } @Test + public void saxParseException() throws JoranException { + System.setProperty(INCLUDE_KEY, INCLUDED_FILE); + System.setProperty(SECOND_FILE_KEY, SECOND_FILE); + tc.doConfigure(MULTI_INCLUDE_BY_FILE); + verifyConfig(3); + } + + @Test public void errorInDoBegin() { - + } - - + void verifyConfig(int expected) { assertEquals(expected, IncAction.beginCount); assertEquals(expected, IncAction.endCount); diff --git a/logback-site/src/site/pages/news.html b/logback-site/src/site/pages/news.html index 68eb6b0..6dd2dc1 100644 --- a/logback-site/src/site/pages/news.html +++ b/logback-site/src/site/pages/news.html @@ -48,6 +48,19 @@ as proposed by David Varnes in <a href="http://jira.qos.ch/browse/LBCORE-101">LBCORE-101</a>.</p> + <p><code>ReconfigureOnChangeFilter</code> did not pick up changes + for configuration files containing spaces. This issue was reported + in <a href="http://jira.qos.ch/browse/LBCORE-119">LBCORE-119</a> + by Anders Wallgren. + </p> + + <p>When ill-formed configuration files fragments were included in + another configuration file, the included file was not closed + correctly. This issue was reported in <a + href="http://jira.qos.ch/browse/LBCORE-122">LBCORE-122</a> by + Michael Franz. + </p> + <p>JaninoEventEvaluator now passes the throwable associated with an event as a <code>java.lang.Throwable</code> instead of an <code>IThrowableProxy</code>. This fixes <a ----------------------------------------------------------------------- Summary of changes: .../logback/core/joran/action/IncludeAction.java | 29 +++++++----- .../src/test/input/joran/inclusion/invalid.xml | 9 +--- .../core/joran/action/IncludeActionTest.java | 48 +++++++++++++++++--- logback-site/src/site/pages/news.html | 13 +++++ 4 files changed, 74 insertions(+), 25 deletions(-) hooks/post-receive -- Logback: the generic, reliable, fast and flexible logging framework.
participants (1)
-
git-noreply@pixie.qos.ch