8255908: ExceptionInInitializerError due to UncheckedIOException while initializing cgroupv1 subsystem
Reviewed-by: shade, sgehwolf, bobv
This commit is contained in:
parent
5ad1e22866
commit
8d9cf48e81
@ -26,6 +26,7 @@
|
|||||||
package jdk.internal.platform;
|
package jdk.internal.platform;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
@ -169,8 +170,9 @@ public interface CgroupSubsystemController {
|
|||||||
.findFirst();
|
.findFirst();
|
||||||
|
|
||||||
return result.isPresent() ? Long.parseLong(result.get()) : defaultRetval;
|
return result.isPresent() ? Long.parseLong(result.get()) : defaultRetval;
|
||||||
}
|
} catch (UncheckedIOException e) {
|
||||||
catch (IOException e) {
|
return defaultRetval;
|
||||||
|
} catch (IOException e) {
|
||||||
return defaultRetval;
|
return defaultRetval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ package jdk.internal.platform;
|
|||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
@ -45,6 +46,8 @@ public final class CgroupUtil {
|
|||||||
} catch (PrivilegedActionException e) {
|
} catch (PrivilegedActionException e) {
|
||||||
unwrapIOExceptionAndRethrow(e);
|
unwrapIOExceptionAndRethrow(e);
|
||||||
throw new InternalError(e.getCause());
|
throw new InternalError(e.getCause());
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
throw e.getCause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,6 +71,8 @@ public final class CgroupUtil {
|
|||||||
} catch (PrivilegedActionException e) {
|
} catch (PrivilegedActionException e) {
|
||||||
unwrapIOExceptionAndRethrow(e);
|
unwrapIOExceptionAndRethrow(e);
|
||||||
throw new InternalError(e.getCause());
|
throw new InternalError(e.getCause());
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
throw e.getCause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,6 +83,8 @@ public final class CgroupUtil {
|
|||||||
} catch (PrivilegedActionException e) {
|
} catch (PrivilegedActionException e) {
|
||||||
unwrapIOExceptionAndRethrow(e);
|
unwrapIOExceptionAndRethrow(e);
|
||||||
throw new InternalError(e.getCause());
|
throw new InternalError(e.getCause());
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
throw e.getCause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
package jdk.internal.platform.cgroupv1;
|
package jdk.internal.platform.cgroupv1;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@ -75,6 +76,8 @@ public class CgroupV1Subsystem implements CgroupSubsystem, CgroupV1Metrics {
|
|||||||
.map(line -> line.split(" "))
|
.map(line -> line.split(" "))
|
||||||
.forEach(entry -> createSubSystemController(subsystem, entry));
|
.forEach(entry -> createSubSystemController(subsystem, entry));
|
||||||
|
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
return null;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -109,6 +112,8 @@ public class CgroupV1Subsystem implements CgroupSubsystem, CgroupV1Metrics {
|
|||||||
.filter(line -> (line.length >= 3))
|
.filter(line -> (line.length >= 3))
|
||||||
.forEach(line -> setSubSystemControllerPath(subsystem, line));
|
.forEach(line -> setSubSystemControllerPath(subsystem, line));
|
||||||
|
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
return null;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
package jdk.internal.platform.cgroupv2;
|
package jdk.internal.platform.cgroupv2;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -69,6 +70,8 @@ public class CgroupV2Subsystem implements CgroupSubsystem {
|
|||||||
.collect(Collectors.joining());
|
.collect(Collectors.joining());
|
||||||
String[] tokens = l.split(" ");
|
String[] tokens = l.split(" ");
|
||||||
mountPath = tokens[4];
|
mountPath = tokens[4];
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
return null;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -87,6 +90,8 @@ public class CgroupV2Subsystem implements CgroupSubsystem {
|
|||||||
cgroupPath = tokens[2];
|
cgroupPath = tokens[2];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
return null;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -329,6 +334,8 @@ public class CgroupV2Subsystem implements CgroupSubsystem {
|
|||||||
return CgroupUtil.readFilePrivileged(Paths.get(unified.path(), "io.stat"))
|
return CgroupUtil.readFilePrivileged(Paths.get(unified.path(), "io.stat"))
|
||||||
.map(mapFunc)
|
.map(mapFunc)
|
||||||
.collect(Collectors.summingLong(e -> e));
|
.collect(Collectors.summingLong(e -> e));
|
||||||
|
} catch (UncheckedIOException e) {
|
||||||
|
return CgroupSubsystem.LONG_RETVAL_UNLIMITED;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return CgroupSubsystem.LONG_RETVAL_UNLIMITED;
|
return CgroupSubsystem.LONG_RETVAL_UNLIMITED;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user