> On Oct 19, 2015, at 11:18 AM, Daniel Fuchs <daniel.fu...@oracle.com> wrote:
> 
> webrev:
> http://cr.openjdk.java.net/~dfuchs/8046565/proto.02/webrev/index.html

Looks good in general.  Some minor comments:

Good to see limited privileges being used that limits the permissions when 
invoking logger finder which is good.

LoggerFinderLoader.java

 110                     (PrivilegedAction<ServiceLoader<DefaultLoggerFinder>>)

- can this use diamond operation (PrivilegedAction<>)?

System.java
1547         return LazyLoggers.getLogger(Objects.requireNonNull(name), caller);

Objects.requireNonNull(name) - already called.   It can just do getLogger(name, 
caller).

RuntimePermission.java
360  *   to JDK classes.</td>

s/JDK/system/

LazyLoggers.java

sun/management/ManagementFactoryHelper.java

 172     public interface LoggingMXBean
 173         extends PlatformLoggingMXBean, java.util.logging.LoggingMXBean {
 174     }

LazyLoggers.java
  68             this(Objects.requireNonNull(loggerSupplier),
  69                  (Void)null);

 130             this(Objects.requireNonNull(name), 
Objects.requireNonNull(factories),
 131                     Objects.requireNonNull(caller), null);

I would expect Objects.requireNonNull on the constructor initializes all the 
fields.  But the above lines checks non-null before calling this(….).  Does the 
other constructor allow null parameters?  Why not moving Objects.requireNonNull 
to the other constructor?

 365            new BiFunction<String, Class<?>, Logger>() {
- it can use diamond operator

BootstrapLogger.DetectBackend looks like have some duplication as 
LoggerFinderLoader.
- does it make sense to merge them?

 923         boolean cleared;
- should that be volatile field?

AbstractLoggerWrapper.java

 212             if (sourceClass==null && sourceMethod==null) {
 234             if (sourceClass==null && sourceMethod==null) {

Missing space around “==“ and also in a few other lines.

java.util.logging.LogManager.demandLoggerFor
- I think this method is intended for the LoggerFinder provider to use.  
Perhaps we should add a note in the javadoc to say that.

SimpleConsoleLogger.skipLoggingFrame and another place is finding the caller 
information.  JEP 259 may be useful for stack walking with filtering.

I skimmed through the tests and nothing pops up.  There are multiple copies of 
AccessSystemLogger that can be shared as I comment last time.

Mandy

Reply via email to