Details
-
Bug
-
Resolution: Fixed
-
Critical
-
1.7.12
-
Windows 7
-
major
Description
If you try executing the following code with jul-to-slf4j you get a NumberFormatException, whereas with java.util.logging you get a normal logged message.
I.e.:
Logger.getLogger("test").log(Level.INFO, "abcd
Result with java.util.logging:
Nov 06, 2015 12:42:03 PM Main main
INFORMAÇÕES: abcd {18=false}
{0}
Result with jul-to-slf4j:
java.lang.IllegalArgumentException: can't parse argument number: 18=false
at java.text.MessageFormat.makeFormat(MessageFormat.java:1420)
at java.text.MessageFormat.applyPattern(MessageFormat.java:479)
at java.text.MessageFormat.<init>(MessageFormat.java:363)
at java.text.MessageFormat.format(MessageFormat.java:835)
at org.slf4j.bridge.SLF4JBridgeHandler.getMessageI18N(SLF4JBridgeHandler.java:264)
at org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:220)
at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:297)
at java.util.logging.Logger.log(Logger.java:616)
at java.util.logging.Logger.doLog(Logger.java:641)
at java.util.logging.Logger.log(Logger.java:685)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at java.text.MessageFormat.makeFormat(MessageFormat.java:1418)
at java.text.MessageFormat.applyPattern(MessageFormat.java:479)
at java.text.MessageFormat.<init>(MessageFormat.java:363)
at java.text.MessageFormat.format(MessageFormat.java:835)
at org.slf4j.bridge.SLF4JBridgeHandler.getMessageI18N(SLF4JBridgeHandler.java:264)
at org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:220)
at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:297)
org/slf4j/bridge/SLF4JBridgeHandler.java:140 Seems to use MessageFormat directly to parse parameters. But java.util.logging uses java.util.logging.SimpleFormatter for a different handling of parameters.