Repository navigation
Serialize CoreFoundation's preprocessing of J2ObjC exceptions. - #2904
Open
copybara-service[bot] wants to merge 1 commit into
Open
copybara-service[bot] wants to merge 1 commit into
copybara-service[bot] wants to merge 1 commit into
Conversation
copybara-service
Bot
force-pushed
the
test_1009192652
branch
from
October 28, 2026 22:38
dd30abf to
ce90ebb
Compare
The first throw of an NSException runs CoreFoundation's exception preprocessor, which fills in the exception's call stacks without synchronization, so concurrent first throws of a shared Java exception can crash. With --define=j2objc_exception_preprocessing=1, J2ObjC now installs its exception preprocessor when the runtime is loaded, directly in front of CoreFoundation's, and runs CoreFoundation's preprocessor for Java exceptions while holding a lock picked by the exception's address. JavaLangThrowable leaves J2ObjC's frame out of the call stacks that it returns. Preprocessors installed later, such as crash reporters', run before J2ObjC's. Nothing runs when an exception is created anymore. PiperOrigin-RevId: 1009192652
copybara-service
Bot
force-pushed
the
test_1009192652
branch
from
October 28, 2026 23:17
ce90ebb to
f8b0cde
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Serialize CoreFoundation's preprocessing of J2ObjC exceptions.
The first throw of an NSException runs CoreFoundation's exception preprocessor, which fills in the exception's call stacks without synchronization, so concurrent first throws of a shared Java exception can crash. With --define=j2objc_exception_preprocessing=1, J2ObjC now installs its exception preprocessor when the runtime is loaded, directly in front of CoreFoundation's, and runs CoreFoundation's preprocessor for Java exceptions while holding a lock picked by the exception's address. JavaLangThrowable leaves J2ObjC's frame out of the call stacks that it returns. Preprocessors installed later, such as crash reporters', run before J2ObjC's. Nothing runs when an exception is created anymore.