Java-Logger Problem mit Lock

takidoso

Erfahrenes Mitglied
Hallo und Halli,
ich habe da ein drollliges Problem bezüglich des standardmäßigen Java-logger (verwendet wird heir die Java Version 1.4.x, welches halt vorgeschrieben ist!)
Ich habe in meinem logger-properties-file in meiner Filepattern #h für das user.dir verzeichnis verwendet und bekomme leider eine mir nicht versändliche Exception:
java.io.IOException: Couldn't get lock for %h/logs/citinleodbooking.%g.log
at java.util.logging.FileHandler.openFiles(FileHandler.java:372)
at java.util.logging.FileHandler.<init>(FileHandler.java:208)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at java.util.logging.LogManager$7.run(LogManager.java:886)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.initializeGlobalHandlers(LogManager.java:878)
at java.util.logging.LogManager.access$900(LogManager.java:129)
at java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:985)
at java.util.logging.Logger.log(Logger.java:424)
at java.util.logging.Logger.doLog(Logger.java:450)
at java.util.logging.Logger.log(Logger.java:473)
at de.equens.booking.citinl.EndOfDayBookingConverter.init(EndOfDayBookingConverter.java:136)
at de.equens.booking.citinl.EndOfDayBookingConverter.main(EndOfDayBookingConverter.java:633)

was ich bisher herausgefunden habe:
Diese Exeption wird (nach Sourcecode von FileHandler zu Fogle ausgelöset wenn
ein unique größer als MAX_LOCKS ist.
fasizinierenderweise handelt es sich offenbar um eine unterbrochene Endlosschleife, wobei in FileHander.generate(pattern, 0, unique) eine FileNotFoundException ausgelöst wird (abgefangen von einem catch IOEception)

Wobei es doch eigentlich normal sein sollte, dass eine Datei, die angelegt werden soll noch nicht existitiert, oder? :confused:

Drollig ist, dass es ohne %h geht, aber ich will mein user.dir da drinnen haben!
Sieht für irgendwie wie ein Bug aus. Kennt jemand dieses Problem und hat einen guten Workaround gefunden?

mit verzeifelten Grüßen

Takidoso
 
Zurück