[Log4J] ERROR StackOverFlow
Bonjour à tous,
j'ai une application qui me génère une erreur suivante dans les logs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| java.lang.StackOverflowError
at sun.nio.cs.UTF_8.updatePositions(UTF_8.java:58)
at sun.nio.cs.UTF_8$Decoder.xflow(UTF_8.java:165)
at sun.nio.cs.UTF_8$Decoder.decodeArrayLoop(UTF_8.java:241)
at sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:305)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:443)
at java.lang.String.<init>(String.java:515)
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at util.log.RolloverFileHandler.writeToFile(RolloverFileHandler.java:129)
at util.log.TeePrintStream.write(TeePrintStream.java:66)
at java.io.PrintStream.write(PrintStream.java:430)
at util.log.TeePrintStream.write(TeePrintStream.java:67)
at java.io.PrintStream.write(PrintStream.java:430)
at util.log.TeePrintStream.write(TeePrintStream.java:67)
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:773)
at java.lang.Throwable.printStackTrace(Throwable.java:461)
at java.lang.Throwable.printStackTrace(Throwable.java:451)
at util.log.RolloverFileHandler.writeToFile(RolloverFileHandler.java:134)
at util.log.TeePrintStream.write(TeePrintStream.java:66)
at java.io.PrintStream.write(PrintStream.java:430)
at util.log.TeePrintStream.write(TeePrintStream.java:67)
at java.io.PrintStream.write(PrintStream.java:430)
at util.log.TeePrintStream.write(TeePrintStream.java:67)
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:773)
at java.lang.Throwable.printStackTrace(Throwable.java:461)
at java.lang.Throwable.printStackTrace(Throwable.java:451)
at util.log.RolloverFileHandler.writeToFile(RolloverFileHandler.java:134)
at util.log.TeePrintStream.write(TeePrintStream.java:66)
at java.io.PrintStream.write(PrintStream.java:430)
at util.log.TeePrintStream.write(TeePrintStream.java:67)
at java.io.PrintStream.write(PrintStream.java:430)
at util.log.TeePrintStream.write(TeePrintStream.java:67)
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) |
(et ça continue encore pendant des dizaines et des dizaines de lignes).
Pb : je ne vois nul part dans la trace de l'erreur, l'appel fait à une de mes classes !
L'on me dit que c'est probablement un problème de tracage des logs (en gros, il y en aurait trop). Je suis assez surpris, car c'est la première fois que je vois cette erreur.
Voici les caractéristiques de sauvegarde des logs (fichier "log4j.xml") :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<appender name="rol" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="C:/Temp/integrationserver.log" />
<param name="MaxFileSize" value="20000KB" />
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="5" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM HH:mm:ss} %p %t %c - %m%n" />
</layout>
</appender>
<appender name="riskComputeFile" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="C:/Temp/integration-risk-compute.log" />
<param name="MaxFileSize" value="2MB" />
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="4" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM HH:mm:ss} %p [%c{5}] - %m%n" />
</layout>
</appender>
<logger name="com.maboite" additivity="false">
<level value="INFO" />
<appender-ref ref="rol" />
</logger>
<logger name="com.maboite.integration" additivity="false">
<level value="INFO" />
<appender-ref ref="rol" />
</logger>
<logger name="com.maboite.integration.riskcomputer" additivity="false">
<level value="INFO" />
<appender-ref ref="riskComputeFile" />
<appender-ref ref="rol" />
</logger> |
Bref, on affiche essentiellement des "INFO" et on n'affiche pas des "INFO" à chaque ligne de code ... alors d'où pourrait venir le problème ?
Si vous avez des idées d'investiguation, je suis preneur.
Merci d'avance,
Très cordialement,