Log4j: ERROR Error converting date

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.

+6
source share
3 answers

This seems to be a very rare situation. The Google error for the error caused the following discussion since 2006: to do something with the un-loading class:
http://comments.gmane.org/gmane.comp.jakarta.log4j.user/13835

I looked at this code. If lastTimeString was somehow not initialized when the class reloaded, then there may be NPE on
call getChars (). However, with the exception of some failure in the virtual machine or on the Internet, the reloading hack class, I do not see how lastTimeString can be null.

EDIT: see question above for solution:

I added an explicit conversion pattern:% d {yyyy-MM-dd HH: mm: ss} [% t]% p% c -% m% n

It also seemed for the following question: NPE with Perf4j and Log4j .

+4
source

I just stumbled upon this exception and this was resolved by deleting log4j.jar from the portlet folder (or servlet, any).

0
source

I know this is an old thread, but I fixed this problem by restarting the server. Yes, cliche answer, but worth a try

0
source

Source: https://habr.com/ru/post/898445/


All Articles