Anonymous | Login | Signup for a new account | 12-17-2024 08:32 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0003882 | [Resin] | minor | always | 02-09-10 09:23 | 02-09-10 09:32 | ||||
Reporter | ferg | View Status | public | ||||||
Assigned To | ferg | ||||||||
Priority | normal | Resolution | fixed | ||||||
Status | closed | Product Version | 4.0.3 | ||||||
Summary | 0003882: EnvironmentLogger getHandlers must not return null | ||||||||
Description |
(rep by Knut Forkalsrud) I believe I have found a bug. The situation is a webapp with BerkeleyDB[1] (from Sleepycat software, now Oracle). Running it in Resin 3.1.8 fails during initialization and the culprit is the method com.caucho.log.EnvironmentLogger.getHandlers(). BerkeleyDB plays around with the loggers (java.util.logging) and the expectation[2] in the code base is that an array is always returned from getHandlers(), never null. That seems to be a valid assumption, the method in EnvironmentLogger overrides a method in java.util.logging.Logger[3], which does indeed make sure return an empty array instead of null. >From what I can tell the fix is relatively simple, unless I am mistaken it is just a matter of making the default value an empty array. In other words the constructor of EnvironmentLogger should call: _localHandlers.setGlobal(new Handler[0]); That approach could affect how "parent" environments work, so maybe the fix should be a little bit more like the implementation in java.util.logging.Logger. I don't understand the code well enough to make that judgement. The workaround is not entirely simple, I ended up grabbing all 8 loggers used by BerkeleyDB in this configuration and add a dummy handler to each of them. |
||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
28 total queries executed. 25 unique queries executed. |