Skip to content

Commit 3d49665

Browse files
committed
8345286: Remove use of SecurityManager API from misc areas
Reviewed-by: alanb, kevinw, sgehwolf
1 parent 38927fc commit 3d49665

File tree

22 files changed

+43
-261
lines changed

22 files changed

+43
-261
lines changed

src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemController.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/*
22
* Copyright (c) 2020, 2022, Red Hat Inc.
3+
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
34
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
45
*
56
* This code is free software; you can redistribute it and/or modify it
@@ -28,8 +29,8 @@
2829
import java.io.IOException;
2930
import java.io.UncheckedIOException;
3031
import java.math.BigInteger;
32+
import java.nio.file.Files;
3133
import java.nio.file.Path;
32-
import java.nio.file.Paths;
3334
import java.util.ArrayList;
3435
import java.util.List;
3536
import java.util.Optional;
@@ -61,13 +62,13 @@ public interface CgroupSubsystemController {
6162
public static String getStringValue(CgroupSubsystemController controller, String param) {
6263
if (controller == null) return null;
6364

64-
try {
65-
return CgroupUtil.readStringValue(controller, param);
66-
}
67-
catch (IOException e) {
65+
Path filePath = Path.of(controller.path(), param);
66+
try (Stream<String> lines = Files.lines(filePath)) {
67+
Optional<String> firstLine = lines.findFirst();
68+
return firstLine.orElse(null);
69+
} catch (UncheckedIOException | IOException e) {
6870
return null;
6971
}
70-
7172
}
7273

7374
/**
@@ -92,8 +93,8 @@ public static long getLongValueMatchingLine(CgroupSubsystemController controller
9293
return retval;
9394
}
9495
try {
95-
Path filePath = Paths.get(controller.path(), param);
96-
List<String> lines = CgroupUtil.readAllLinesPrivileged(filePath);
96+
Path filePath = Path.of(controller.path(), param);
97+
List<String> lines = Files.readAllLines(filePath);
9798
for (String line : lines) {
9899
if (line.startsWith(match)) {
99100
retval = conversion.apply(line);
@@ -161,7 +162,7 @@ public static double getDoubleValue(CgroupSubsystemController controller, String
161162
public static long getLongEntry(CgroupSubsystemController controller, String param, String entryname, long defaultRetval) {
162163
if (controller == null) return defaultRetval;
163164

164-
try (Stream<String> lines = CgroupUtil.readFilePrivileged(Paths.get(controller.path(), param))) {
165+
try (Stream<String> lines = Files.lines(Path.of(controller.path(), param))) {
165166

166167
Optional<String> result = lines.map(line -> line.split(" "))
167168
.filter(line -> (line.length == 2 &&

src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemFactory.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/*
22
* Copyright (c) 2020, 2022, Red Hat Inc.
3+
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
34
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
45
*
56
* This code is free software; you can redistribute it and/or modify it
@@ -29,8 +30,8 @@
2930
import java.io.UncheckedIOException;
3031
import java.lang.System.Logger;
3132
import java.lang.System.Logger.Level;
33+
import java.nio.file.Files;
3234
import java.nio.file.Path;
33-
import java.nio.file.Paths;
3435
import java.util.Collections;
3536
import java.util.HashMap;
3637
import java.util.List;
@@ -140,7 +141,7 @@ public static Optional<CgroupTypeResult> determineType(String mountInfo,
140141
String cgroups,
141142
String selfCgroup) throws IOException {
142143
final Map<String, CgroupInfo> infos = new HashMap<>();
143-
List<String> lines = CgroupUtil.readAllLinesPrivileged(Paths.get(cgroups));
144+
List<String> lines = Files.readAllLines(Path.of(cgroups));
144145
for (String line : lines) {
145146
if (line.startsWith("#")) {
146147
continue;
@@ -180,7 +181,7 @@ public static Optional<CgroupTypeResult> determineType(String mountInfo,
180181
// However, continuing in that case does not make sense as we'd need
181182
// information from mountinfo for the mounted controller paths which we wouldn't
182183
// find anyway in that case.
183-
lines = CgroupUtil.readAllLinesPrivileged(Paths.get(mountInfo));
184+
lines = Files.readAllLines(Path.of(mountInfo));
184185
boolean anyCgroupMounted = false;
185186
for (String line: lines) {
186187
boolean cgroupsControllerFound = amendCgroupInfos(line, infos, isCgroupsV2);
@@ -196,8 +197,7 @@ public static Optional<CgroupTypeResult> determineType(String mountInfo,
196197
// See:
197198
// setCgroupV1Path() for the action run for cgroups v1 systems
198199
// setCgroupV2Path() for the action run for cgroups v2 systems
199-
try (Stream<String> selfCgroupLines =
200-
CgroupUtil.readFilePrivileged(Paths.get(selfCgroup))) {
200+
try (Stream<String> selfCgroupLines = Files.lines(Path.of(selfCgroup))) {
201201
Consumer<String[]> action = (tokens -> setCgroupV1Path(infos, tokens));
202202
if (isCgroupsV2) {
203203
action = (tokens -> setCgroupV2Path(infos, tokens));
@@ -311,7 +311,7 @@ private static boolean amendCgroupInfos(String mntInfoLine,
311311
String mountPath = lineMatcher.group(2);
312312
String fsType = lineMatcher.group(3);
313313
if (fsType.equals("cgroup")) {
314-
Path p = Paths.get(mountPath);
314+
Path p = Path.of(mountPath);
315315
String[] controllerNames = p.getFileName().toString().split(",");
316316
for (String controllerName: controllerNames) {
317317
switch (controllerName) {

src/java.base/linux/classes/jdk/internal/platform/CgroupUtil.java

Lines changed: 0 additions & 92 deletions
This file was deleted.

src/java.base/linux/classes/jdk/internal/platform/cgroupv2/CgroupV2Subsystem.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/*
22
* Copyright (c) 2020, 2022, Red Hat Inc.
3+
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
34
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
45
*
56
* This code is free software; you can redistribute it and/or modify it
@@ -27,15 +28,16 @@
2728

2829
import java.io.IOException;
2930
import java.io.UncheckedIOException;
30-
import java.nio.file.Paths;
31+
import java.nio.file.Files;
32+
import java.nio.file.Path;
3133
import java.util.concurrent.TimeUnit;
3234
import java.util.function.Function;
3335
import java.util.stream.Collectors;
36+
import java.util.stream.Stream;
3437

3538
import jdk.internal.platform.CgroupInfo;
3639
import jdk.internal.platform.CgroupSubsystem;
3740
import jdk.internal.platform.CgroupSubsystemController;
38-
import jdk.internal.platform.CgroupUtil;
3941

4042
public class CgroupV2Subsystem implements CgroupSubsystem {
4143

@@ -328,10 +330,9 @@ public long getBlkIOServiced() {
328330
}
329331

330332
private long sumTokensIOStat(Function<String, Long> mapFunc) {
331-
try {
332-
return CgroupUtil.readFilePrivileged(Paths.get(unified.path(), "io.stat"))
333-
.map(mapFunc)
334-
.collect(Collectors.summingLong(e -> e));
333+
try (Stream<String> lines = Files.lines(Path.of(unified.path(), "io.stat"))) {
334+
return lines.map(mapFunc)
335+
.collect(Collectors.summingLong(e -> e));
335336
} catch (UncheckedIOException | IOException e) {
336337
return CgroupSubsystem.LONG_RETVAL_UNLIMITED;
337338
}

src/java.base/share/classes/java/io/FilePermission.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,6 @@ public FilePermission newPermUsingAltPath(FilePermission input) {
283283
* @param mask the actions mask to use.
284284
*
285285
*/
286-
@SuppressWarnings("removal")
287286
private void init(int mask) {
288287
if ((mask & ALL) != mask)
289288
throw new IllegalArgumentException("invalid actions mask");

src/java.base/share/classes/java/lang/String.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,6 @@ public String(byte[] bytes, int offset, int length, Charset charset) {
549549
* Important: parameter order of this method is deliberately changed in order to
550550
* disambiguate it against other similar methods of this class.
551551
*/
552-
@SuppressWarnings("removal")
553552
private String(Charset charset, byte[] bytes, int offset, int length) {
554553
if (length == 0) {
555554
this.value = "".value;
@@ -787,7 +786,6 @@ static String newStringNoRepl(byte[] src, Charset cs) throws CharacterCodingExce
787786
}
788787
}
789788

790-
@SuppressWarnings("removal")
791789
private static String newStringNoRepl1(byte[] src, Charset cs) {
792790
int len = src.length;
793791
if (len == 0) {

src/java.base/share/classes/java/lang/System.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1379,7 +1379,6 @@ public static LoggerFinder getLoggerFinder() {
13791379

13801380

13811381
private static volatile LoggerFinder service;
1382-
@SuppressWarnings("removal")
13831382
static LoggerFinder accessProvider() {
13841383
// We do not need to synchronize: LoggerFinderLoader will
13851384
// always return the same instance, so if we don't have it,
@@ -1483,7 +1482,6 @@ public static Logger getLogger(String name) {
14831482
*
14841483
* @since 9
14851484
*/
1486-
@SuppressWarnings("removal")
14871485
@CallerSensitive
14881486
public static Logger getLogger(String name, ResourceBundle bundle) {
14891487
final ResourceBundle rb = Objects.requireNonNull(bundle);

src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,6 @@ S loadSpecies(S speciesData) {
578578
* @param speciesData what species we are generating
579579
* @return the generated concrete TopClass class
580580
*/
581-
@SuppressWarnings("removal")
582581
Class<? extends T> generateConcreteSpeciesCode(String className, ClassSpecializer<T,K,S>.SpeciesData speciesData) {
583582
byte[] classFile = generateConcreteSpeciesCodeFile(className, speciesData);
584583
var lookup = new MethodHandles.Lookup(topClass);

src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ final class ProxyGenerator {
103103
/**
104104
* debugging flag for saving generated class files
105105
*/
106-
@SuppressWarnings("removal")
107106
private static final boolean SAVE_GENERATED_FILES =
108107
Boolean.getBoolean("jdk.proxy.ProxyGenerator.saveGeneratedFiles");
109108

src/java.base/share/classes/java/net/URLConnection.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1388,7 +1388,6 @@ private ContentHandler lookupContentHandlerClassFor(String contentType) {
13881388
return UnknownContentHandler.INSTANCE;
13891389
}
13901390

1391-
@SuppressWarnings("removal")
13921391
private ContentHandler lookupContentHandlerViaProvider(String contentType) {
13931392

13941393
ClassLoader cl = ClassLoader.getSystemClassLoader();

0 commit comments

Comments
 (0)