I found this exception in my logs:
log4j: ERROR Error converting date. java.lang.NullPointerException in java.lang.System.arraycopy (native method) in java.lang.AbstractStringBuilder.getChars (AbstractStringBuilder.java:328) in java.lang.StringBuffer.getChars (StringBuffer.java:201) at org. apache.log4j.helpers.ISO8601DateFormat.format (ISO8601DateFormat.java:130) in java.text.DateFormat.format (DateFormat.java data16) at org.apache.log4j.helpers.PatternParser $ DatePatternConverter.convert (PatternParser 443) on org.apache.log4j.helpers.PatternConverter.format (PatternConverter.java:65) on org.apache.log4j.PatternLayout.format (PatternLayout.java:506) on org.apache.log4j.WriterAppender.subAppend (WriterAppender .java: 310) at org.apache.log4j.WriterAppender.append (WriterAppender.java:162) at org.apache.log4j.AppenderSkeleton.doAppend (AppenderSkeleton.java:251) at org.apache.log4j.helpers.AppenderAttachableImpl. appendLoopOnAppenders (AppenderAttachableImpl.java:66) at org.apache.log4j.C ategory.callAppenders (Category.java:206) at org.apache.log4j.Category.forcedLog (Category.javahaps91) at org.apache.log4j.Category.info (Category Java: 666) at org.obliquid.db .ConnectionManager.releaseConnection (ConnectionManager.java{13) on org.obliquid.db.ConnectionManager.finalize (ConnectionManager.javaI31) in java.lang.ref.Finalizer.invokeFinalizeMethod (native method) in java.lang.ref.Finalizer .runFinalizer (Finalizer.java:83) on java.lang.ref.Finalizer.access $ 100 (Finalizer.java:14) on java.lang.ref.Finalizer $ FinalizerThread.run (Finalizer.java:160)
I think this could be caused by my log4j.properties file, in particular ConversionPattern. Any idea on how to fix it?
#Updated at Wed Sep 14 21:57:51 CEST 2011 #Wed Sep 14 21:57:51 CEST 2011 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.rootLogger=INFO, stdout log4j.appender.R.File=yamweb.log log4j.appender.R.MaxFileSize=1000KB log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.logger.yamweb=DEBUG log4j.logger.org.springframework=INFO log4j.logger.org.springframework.beans=DEBUG log4j.logger.com.amazonaws=WARN
UPDATE In fact, looking at PatternLayout JavaDoc , I don't even mention the date format.
d Used to display the date of the registration event. A date conversion specifier can be followed by a date format specifier enclosed between curly braces. For example,% d {HH: mm: ss, SSS} or% d {dd MMM yyyy HH: mm: ss, SSS}. If no date format specifier is specified, the ISO8601 format is assumed.
I added an explicit conversion pattern: %d{yyyy-MM-dd HH:mm:ss} [%t] %p %c - %m%n
- looking at the log and I will let you know if this helps.
UPDATE 2 : the problem no longer recurs.
source share