@@ -149,19 +149,11 @@ private static String findAgentJar() {
149149 */
150150 private static void selfTest () {
151151 ensureCannotStartProcess (ProcessBuilder ::start );
152- ensureCanCreateTempFile (() -> Files . createTempFile ( null , null ) );
152+ ensureCanCreateTempFile (EntitlementBootstrap :: createTempFile );
153153
154154 // Try again with reflection
155- ensureCannotStartProcess (pb -> {
156- try {
157- var start = ProcessBuilder .class .getMethod ("start" );
158- start .invoke (pb );
159- } catch (InvocationTargetException e ) {
160- throw (Exception )e .getCause ();
161- }
162- });
163- ensureCanCreateTempFile (() -> (Path ) Files .class .getMethod ("createTempFile" , String .class , String .class , FileAttribute [].class )
164- .invoke (null , null , null , new FileAttribute <?>[0 ]));
155+ ensureCannotStartProcess (EntitlementBootstrap ::reflectiveStartProcess );
156+ ensureCanCreateTempFile (EntitlementBootstrap ::reflectiveCreateTempFile );
165157 }
166158
167159 private static void ensureCannotStartProcess (CheckedConsumer <ProcessBuilder , ?> startProcess ) {
@@ -177,10 +169,6 @@ private static void ensureCannotStartProcess(CheckedConsumer<ProcessBuilder, ?>
177169 throw new IllegalStateException ("Entitlement protection self-test was incorrectly permitted" );
178170 }
179171
180- /**
181- * Originally {@code Security.selfTest}.
182- */
183- @ SuppressForbidden (reason = "accesses jvm default tempdir as a self-test" )
184172 private static void ensureCanCreateTempFile (CheckedSupplier <Path , ?> createTempFile ) {
185173 try {
186174 Path p = createTempFile .get ();
@@ -200,5 +188,24 @@ private static void ensureCanCreateTempFile(CheckedSupplier<Path, ?> createTempF
200188 logger .debug ("Success: Entitlement protection correctly permitted temp file creation" );
201189 }
202190
191+ @ SuppressForbidden (reason = "accesses jvm default tempdir as a self-test" )
192+ private static Path createTempFile () throws Exception {
193+ return Files .createTempFile (null , null );
194+ }
195+
196+ private static void reflectiveStartProcess (ProcessBuilder pb ) throws Exception {
197+ try {
198+ var start = ProcessBuilder .class .getMethod ("start" );
199+ start .invoke (pb );
200+ } catch (InvocationTargetException e ) {
201+ throw (Exception ) e .getCause ();
202+ }
203+ }
204+
205+ private static Path reflectiveCreateTempFile () throws Exception {
206+ return (Path ) Files .class .getMethod ("createTempFile" , String .class , String .class , FileAttribute [].class )
207+ .invoke (null , null , null , new FileAttribute <?>[0 ]);
208+ }
209+
203210 private static final Logger logger = LogManager .getLogger (EntitlementBootstrap .class );
204211}
0 commit comments