[ https://issues.apache.org/jira/browse/LUCENE-9109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17003268#comment-17003268 ]
Uwe Schindler edited comment on LUCENE-9109 at 12/25/19 12:53 PM: ------------------------------------------------------------------ I backported the removal of SecurityManager to 8.x. I wanted to refactor the code and use the same stream logic like with StackWalker, but this was impossible as Java 8 does not support {{Stream#dropWhile()}} and {{Predicate#not()}}. So I left the main logic as is in 8.x. was (Author: thetaphi): I backported the removal of SecurityManager to 8.x. I wanted to refaczor the code and use the same stream logic like with StackWalker, but this was impossible as Java 8 does not support {{Stream#dropWhile()}} and {{Predicate#not()}}. So I left the main logic as is in 8.x. > Use Java 9+ StackWalker to implement TestSecurityManager's detection of JVM > exit > -------------------------------------------------------------------------------- > > Key: LUCENE-9109 > URL: https://issues.apache.org/jira/browse/LUCENE-9109 > Project: Lucene - Core > Issue Type: Improvement > Components: modules/test-framework > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Priority: Major > Fix For: master (9.0) > > Time Spent: 1h > Remaining Estimate: 0h > > This is just a small improvement in Lucene/Solr master (Java 11) to detect > exit of JVM in our test framework. There are other places in Lucene that use > ineffective ways to inspect the stack trace. > This one optimizes the implementation of > TestSecurityManager#checkExit(status) to disallow all JVM exits outside of > the official test runner by using StackWalker. In addition this needs no > additional permissions, because we do not instruct StackWalker to fetch all > crazy stuff like Class instances of stack elements. > The way how this works is: Walk through stack trace: > - skip all internal frames (those which come before the actual exit call) > - skip all frmes with the actual exit call > - limit to one more frame (the method calling System.exit()) > - check if that remaining frame is on our whitelist > This can only be commited to master (9.0), as it requires Java 9. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org