bonsoir à tous,

je rencontre un problème de Log4j au démarrage de mon Tomcat. quelques fois j'ai une Exception au démarrage, une NullPointerException sur un appel à la méthode debug de mon Logger.

j'ai donc un thread USBQueue qui crée un Logger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
private static final Logger log = Logger.getLogger("com.std.USB.USBQueue");
[CODE]

dans ma méthode run() j'appelle plusieurs fois la méthode log.debug(...) et le dernier de la méthode me fait l'exception suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Exception in thread "USBQueue" java.lang.NullPointerException
	at org.apache.log4j.spi.LocationInfo.<init>(LocationInfo.java:112)
	at org.apache.log4j.spi.LoggingEvent.getLocationInformation(LoggingEvent.java:247)
	at org.apache.log4j.helpers.PatternParser$ClassNamePatternConverter.getFullyQualifiedName(PatternParser.java:538)
	at org.apache.log4j.helpers.PatternParser$NamedPatternConverter.convert(PatternParser.java:511)
	at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:65)
	at org.apache.log4j.PatternLayout.format(PatternLayout.java:502)
	at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:302)
	at org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:359)
	at org.apache.log4j.WriterAppender.append(WriterAppender.java:160)
	at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
	at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
	at org.apache.log4j.Category.callAppenders(Category.java:206)
	at org.apache.log4j.Category.forcedLog(Category.java:391)
	at org.apache.log4j.Category.debug(Category.java:260)
	at com.emi.module.USBCard.USBQueue.run(USBQueue.java:266)
l'appel qui génère cette exception est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
			if(usb.GetNumberofCommand() != 0){
				log.debug("Printing Commands Collection");
				usb.printCommands();
			}
j'ai tenté de lever le log.debug, ça ne génère plus l'exception, mais celle ci n'apparait que quelques fois...ce n'est donc pas une solution de lever cet appel, j'aimerais comprendre...

savez vous d'ou cela provient ?

Merci,
Tiamat.