On Thu, 26 May 2022 09:42:22 GMT, Maxim Kartashev <mkartas...@openjdk.org> 
wrote:

>> Following the logic from the comment directly above the changed line, since 
>> it doesn't matter which controller we pick, pick any available controller 
>> instead of the one called "memory" specifically. This way we are guarded 
>> against getting `null` as `anyController`, which is being immediately passed 
>> down to `CgroupV2Subsystem.getInstance()` that is unprepared to accept 
>> `null` values. 
>> 
>> It is also worth noting that the previous checks (such as that at line 89) 
>> make sure that there exist at least one controller in the map.
>
> Maxim Kartashev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Removed unnecessary null checks

Changes requested by iklam (Reviewer).

src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemFactory.java 
line 113:

> 111:             CgroupInfo anyController = infos.values().iterator().next();
> 112:             CgroupSubsystem subsystem = 
> CgroupV2Subsystem.getInstance(anyController);
> 113:             return new CgroupMetrics(subsystem);

Should add `Objects.requireNonNull(anyController)` and 
`Objects.requireNonNull(subsystem)`.

src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemFactory.java 
line 116:

> 114:         } else {
> 115:             CgroupV1Subsystem subsystem = 
> CgroupV1Subsystem.getInstance(infos);
> 116:             return new CgroupV1MetricsImpl(subsystem);

This shouldn't be changed because the current implementation of 
`CgroupV1Subsystem.getInstance(infos)` has a path that returns null.

Maybe that's impossible, because when we call `CgroupV1Subsystem.getInstance`, 
we must have at least one v1 subsystem in `infos`. However, that's not related 
to this issue.  Please fix that in a separate RFE. For example, 
`CgroupV1Subsystem.getInstance(infos)`  can be changed to throw an exception 
instead if return null.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8803

Reply via email to