2012-09-25 22 views
5

¡Esta es una verdadera excepción de stackflow en el sitio de stackoverflow! Me preguntaba si alguien lo había visto antes, y lo que solían abordar.log4j stackoverflow

java.lang.StackOverflowError 
at java.lang.Exception.<init>(Exception.java:41) 
at java.io.IOException.<init>(IOException.java:41) 
at java.io.FileOutputStream.writeBytes(Native Method) 
at java.io.FileOutputStream.write(FileOutputStream.java:260) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:263) 
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106) 
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:116) 
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:203) 
at java.io.Writer.write(Writer.java:140) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:44) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 
at org.apache.log4j.Category.callAppenders(Category.java:203) 
at org.apache.log4j.Category.forcedLog(Category.java:388) 
at org.apache.log4j.Category.log(Category.java:835) 
at org.apache.log4j.contribs.LoggingOutputStream.flush(LoggingOutputStream.java:168) 
at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 
at java.io.PrintStream.print(PrintStream.java:619) 
at java.io.PrintStream.println(PrintStream.java:756) 
at org.apache.log4j.helpers.LogLog.error(LogLog.java:142) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:77) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:67) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:48) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 
at org.apache.log4j.Category.callAppenders(Category.java:203) 
at org.apache.log4j.Category.forcedLog(Category.java:388) 
at org.apache.log4j.Category.log(Category.java:835) 
at org.apache.log4j.contribs.LoggingOutputStream.flush(LoggingOutputStream.java:168) 
at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 
at java.io.PrintStream.print(PrintStream.java:619) 
at java.io.PrintStream.println(PrintStream.java:756) 
at org.apache.log4j.helpers.LogLog.error(LogLog.java:142) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:77) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:67) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:48) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 
at org.apache.log4j.Category.callAppenders(Category.java:203) 
at org.apache.log4j.Category.forcedLog(Category.java:388) 
at org.apache.log4j.Category.log(Category.java:835) 
at org.apache.log4j.contribs.LoggingOutputStream.flush(LoggingOutputStream.java:168) 
at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 

... (se repite unas 10 veces)

at java.io.PrintStream.write(PrintStream.java:432) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) 
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) 
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) 
at java.io.PrintStream.write(PrintStream.java:477) 
at java.io.PrintStream.print(PrintStream.java:619) 
at java.io.PrintStream.println(PrintStream.java:756) 
at org.apache.log4j.helpers.LogLog.error(LogLog.java:142) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:77) 
at org.apache.log4j.helpers.OnlyOnceErrorHandler.error(OnlyOnceErrorHandler.java:67) 
at org.apache.log4j.helpers.CountingQuietWriter.write(CountingQuietWriter.java:48) 
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301) 
at org.apache.log4j.contribs.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:395) 
at org.apache.log4j.WriterAppender.append(WriterAppender.java:159) 
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230) 
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) 

java.lang.StackOverflowError

+0

¿Qué tipo de configuración de log4j está utilizando? – DNA

Respuesta

5

que faltan los archivos de configuración de log4j y código aquí.

embargo, la estimación inicial es que

1) LoggingOutputStream se utiliza en algún lugar de código, en sustitución de System.err así:

System.setErr(new PrintStream(new LoggingOutputStream(Category.getRoot(), Priority.WARN), true)); 

2) log4j no está configurado correctamente e intenta imprimir error interno a System.err en LogLog.

Esto crea llamadas de registro circular que conducen al desbordamiento de la pila.

Intente eliminar el interceptor System.err de 1). Esto permitiría que emerja el error interno de 2).

+1

Gracias mucho. Has resuelto nuestro problema :-) – RubioRic