[logback-dev] svn commit: r1833 - logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/parser
noreply.ceki at qos.ch
noreply.ceki at qos.ch
Wed Oct 15 17:39:29 CEST 2008
Author: ceki
Date: Wed Oct 15 17:39:29 2008
New Revision: 1833
Modified:
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/parser/Compiler.java
Log:
Better error reporting during the creation of Converter from the custom converter registry
Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/parser/Compiler.java
==============================================================================
--- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/parser/Compiler.java (original)
+++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/pattern/parser/Compiler.java Wed Oct 15 17:39:29 2008
@@ -19,14 +19,13 @@
import ch.qos.logback.core.status.ErrorStatus;
import ch.qos.logback.core.util.OptionHelper;
-
class Compiler<E> extends ContextAwareBase {
Converter<E> head;
Converter<E> tail;
final Node top;
final Map converterMap;
-
+
Compiler(final Node top, final Map converterMap) {
this.top = top;
this.converterMap = converterMap;
@@ -43,7 +42,8 @@
CompositeNode cn = (CompositeNode) n;
CompositeConverter<E> compositeConverter = new CompositeConverter<E>();
compositeConverter.setFormattingInfo(cn.getFormatInfo());
- Compiler<E> childCompiler = new Compiler<E>(cn.getChildNode(), converterMap);
+ Compiler<E> childCompiler = new Compiler<E>(cn.getChildNode(),
+ converterMap);
childCompiler.setContext(context);
Converter<E> childConverter = childCompiler.compile();
compositeConverter.setChildConverter(childConverter);
@@ -61,7 +61,8 @@
// it with a dummy LiteralConverter indicating an error.
Converter<E> errConveter = new LiteralConverter<E>("%PARSER_ERROR_"
+ kn.getValue());
- addStatus(new ErrorStatus("["+kn.getValue()+"] is not a valid conversion word", this));
+ addStatus(new ErrorStatus("[" + kn.getValue()
+ + "] is not a valid conversion word", this));
addToList(errConveter);
}
@@ -79,9 +80,10 @@
}
}
-
/**
- * Attempt to create a converter using the information found in 'converterMap'.
+ * Attempt to create a converter using the information found in
+ * 'converterMap'.
+ *
* @param kn
* @return
*/
@@ -90,26 +92,29 @@
String keyword = (String) kn.getValue();
String converterClassStr = (String) converterMap.get(keyword);
- // FIXME: Better error handling
if (converterClassStr != null) {
try {
return (DynamicConverter) OptionHelper.instantiateByClassName(
converterClassStr, DynamicConverter.class, context);
} catch (Exception e) {
+ addError("Failed to instantiate converter class [" + converterClassStr
+ + "]", e);
return null;
}
} else {
+ addError("There is no conversion class registered for conversion word ["
+ + keyword + "]");
return null;
}
}
-// public void setStatusManager(StatusManager statusManager) {
-// this.statusManager = statusManager;
-// }
-//
-// void addStatus(Status status) {
-// if(statusManager != null) {
-// statusManager.add(status);
-// }
-// }
+ // public void setStatusManager(StatusManager statusManager) {
+ // this.statusManager = statusManager;
+ // }
+ //
+ // void addStatus(Status status) {
+ // if(statusManager != null) {
+ // statusManager.add(status);
+ // }
+ // }
}
\ No newline at end of file
More information about the logback-dev
mailing list