RFR (JAXP) 8146271: File system contention in debug print via XPathFactory.newInstance
aleksej.efimov at oracle.com
Thu Dec 15 20:45:17 UTC 2016
The main purpose of this fix is to postpone debug message string parts
calculation/concatenation till when the actual output is needed, i.e. we
don't want to call which(clazz) until the debug output is needed
(debug=true) in XPathFactoryFinder ). I'm not sure that
function/bifunction can give us such possibility due to different ways
of messages construction in dPrint and debugPrintln usages.
On 15/12/16 20:22, Tom Schindl wrote:
> Wouldn't it be better to use a function/bifunction instead of a supplier because the supplier is a capturing?
> Von meinem iPhone gesendet
>> Am 14.12.2016 um 19:04 schrieb Aleks Efimov <aleksej.efimov at oracle.com>:
>> Hi Joe,
>> Thank you for the suggestions. What about modifying the 'debugPrintln' and 'dPrint' functions to accept 'j.u.function.Supplier<String>' instead of 'String'? Such approach will give us a possibility to do the output string calculation only when debugging is switched on. Such approach can be illustrated by this webrev:
>> Best Regards,
>>> On 14/12/16 03:35, Joe Wang wrote:
>>> Hi Aleksej,
>>> You may want to improve the debugPrintln or its usage to remove the String concatenations or method calls such as f.getClass().getName() that are unnecessary when debug == false. Where we are here, could you expand the patch to cover other jaxp packages (e.g. javax.xml.parsers) where similar problems exist.
>>>> On 12/13/16, 3:02 PM, Aleks Efimov wrote:
>>>> Please, help to review the changes that addresses the file system contention caused by debug code in XPathFactoryFinder and XPathFactoryFinder classes . Proposed fix wraps the debug output code in "if(debug)" block:
>>>> Best Regards,
>>>>  https://bugs.openjdk.java.net/browse/JDK-8146271
More information about the core-libs-dev