[logback-dev] branch, master, updated. d106f950fee98979df8f92537f47d5aea361b869
added by portage for gitosis-gentoo
git-noreply at pixie.qos.ch
Tue Dec 1 23:32:10 CET 2009
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=d106f950fee98979df8f92537f47d5aea361b869
http://github.com/ceki/logback/commit/d106f950fee98979df8f92537f47d5aea361b869
commit d106f950fee98979df8f92537f47d5aea361b869
Author: Ceki Gulcu <ceki at 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.
More information about the logback-dev
mailing list