[JDK 11] RFR: 8195096: Exception printed on console with custom LogManager on starting Apache Tomcat

Mark Thomas markt at apache.org
Fri Jan 19 20:14:57 UTC 2018

On 19/01/18 19:25, Daniel Fuchs wrote:
> Hi Mark,
> Would it be possible for you to call super.getProperty()
> when you want to see the 'raw' value, and
> this.getProperty() when you want to see the 'corrected'
> value?

Hi Daniel,

I see where you are coming from but I don't think so.

Jason made a suggestion off-list that got me thinking in slightly
different direction. I'm going to look at whether I can use a
ThreadLocal to indicate where the call originates so requests for
".handlers" are responded to differently for CLLM and LM.

I'm not sure what is possible at this point. I need to do some more

Thanks to both of you for the hints that have got me thinking in new
directions for a workaround.


> best regards,
> -- daniel
> On 19/01/2018 17:34, Mark Thomas wrote:
>> On 19/01/18 14:22, Daniel Fuchs wrote:
>>> Hi,
>>> For the record, I updated the JBS issue [1] with Jason's suggestion
>>> and asked to get feedback from the submitter.
>> Providing feedback, as requested.
>> Thanks for looking at this so quickly. The speedy response is
>> appreciated.
>> I did look to try and handle this in getProperty() but I ran into the
>> following problem.
>> ClassLoaderLogManager expects getProperty() to return the custom value
>> for .handlers that includes the modified class name. If this value is
>> returned, LogManager generates the unwanted stack trace. If the value is
>> 'corrected' so LogManager doesn't generate the stack trace,
>> ClassLoaderLogManager sees the wrong value and isn't configured
>> correctly.
>> If I've missed a way to handle this, a pointer to that solution is
>> appreciated. I spent some time looking at a way to work around it before
>> raising a bug and I couldn't find a practical solution. I really didn't
>> want to start down the road of looking at the call stack to determine
>> how to handle values in getProperty().
>> The protected addInitialRootLoggerHandlers() solution looks to be
>> exactly what is required.
>> Kind regards,
>> Mark

More information about the core-libs-dev mailing list