Uwe Schindler created LUCENE-9109:
-------------------------------------

             Summary: 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
             Fix For: master (9.0)


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

Reply via email to