That sounds like a far more robust solution :)

On 19 February 2016 at 11:18, Remko Popma <[email protected]> wrote:

> Good point.
> I'm looking at a way to use aspects during unit testing to automatically
> detect if objects are allocated.
> This will help prevent regressions once the no-GC goal has been achieved.
>
> On Sat, Feb 20, 2016 at 2:03 AM, Gary Gregory <[email protected]>
> wrote:
>
>> I think that all these perf changes need a method comment that says
>> something like "note that this code carefully does this and not that for
>> performance".
>>
>> It should all be doc'd otherwise it is too easy for someone else to edit
>> the method and undo the intent of the carefully tweaked perf changes.
>>
>> Gary
>> ---------- Forwarded message ----------
>> From: <[email protected]>
>> Date: Feb 19, 2016 7:41 AM
>> Subject: logging-log4j2 git commit: LOG4J2-1281
>> LoggerConfig.getProperties() should not allocate on each call.
>> To: <[email protected]>
>> Cc:
>>
>> Repository: logging-log4j2
>> Updated Branches:
>>   refs/heads/master 25a780e95 -> 3458ea944
>>
>>
>> LOG4J2-1281 LoggerConfig.getProperties() should not allocate on each call.
>>
>>
>> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
>> Commit:
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3458ea94
>> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3458ea94
>> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3458ea94
>>
>> Branch: refs/heads/master
>> Commit: 3458ea94491c01a4ce91bcf5bb249c80306fa42c
>> Parents: 25a780e
>> Author: rpopma <[email protected]>
>> Authored: Sat Feb 20 00:41:24 2016 +0900
>> Committer: rpopma <[email protected]>
>> Committed: Sat Feb 20 00:41:24 2016 +0900
>>
>> ----------------------------------------------------------------------
>>  .../org/apache/logging/log4j/core/config/LoggerConfig.java    | 7 ++++---
>>  src/changes/changes.xml                                       | 3 +++
>>  2 files changed, 7 insertions(+), 3 deletions(-)
>> ----------------------------------------------------------------------
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3458ea94/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
>> index 2bd25be..1d0f530 100644
>> ---
>> a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
>> +++
>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
>> @@ -127,11 +127,12 @@ public class LoggerConfig extends
>> AbstractFilterable {
>>          this.includeLocation = includeLocation;
>>          this.config = config;
>>          if (properties != null && properties.length > 0) {
>> -            this.properties = new HashMap<>(properties.length);
>> +            final Map<Property, Boolean> map = new
>> HashMap<>(properties.length);
>>              for (final Property prop : properties) {
>>                  final boolean interpolate =
>> prop.getValue().contains("${");
>> -                this.properties.put(prop, interpolate);
>> +                map.put(prop, interpolate);
>>              }
>> +            this.properties = Collections.unmodifiableMap(map);
>>          } else {
>>              this.properties = null;
>>          }
>> @@ -308,7 +309,7 @@ public class LoggerConfig extends AbstractFilterable {
>>       */
>>      // LOG4J2-157
>>      public Map<Property, Boolean> getProperties() {
>> -        return properties == null ? null :
>> Collections.unmodifiableMap(properties);
>> +        return properties;
>>      }
>>
>>      /**
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3458ea94/src/changes/changes.xml
>> ----------------------------------------------------------------------
>> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
>> index e579ed4..a006907 100644
>> --- a/src/changes/changes.xml
>> +++ b/src/changes/changes.xml
>> @@ -24,6 +24,9 @@
>>    </properties>
>>    <body>
>>      <release version="2.6" date="201Y-MM-DD" description="GA Release
>> 2.6">
>> +      <action issue="LOG4J2-1281" dev="rpopma" type="fix">
>> +        LoggerConfig.getProperties() should not allocate on each call.
>> +      </action>
>>        <action issue="LOG4J2-1280" dev="rpopma" type="fix">
>>          Logger methods taking Supplier parameters now correctly handle
>> cases where the supplied value is a Message.
>>        </action>
>>
>>
>


-- 
Matt Sicker <[email protected]>

Reply via email to