refactor(config): improve startup errors and remove inactive assertions - #6960
Open
bladehan1 wants to merge 2 commits into
Open
refactor(config): improve startup errors and remove inactive assertions#6960bladehan1 wants to merge 2 commits into
bladehan1 wants to merge 2 commits into
Conversation
Use TronError with PARAMETER_INIT for invalid startup configuration, remove assertions that are inactive at runtime, and cover the new error paths with unit tests.
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.
What does this PR do?
IllegalArgumentExceptionfailures withTronError(PARAMETER_INIT).TrieImpland the Besu-derivedBlake2bfMessageDigestimplementations.chainbase.Why are these changes required?
The selected failures are parameter initialization errors. Classifying them with
PARAMETER_INITmakes startup failures consistent while preserving their messages and exit behavior.The assertion cleanup is limited to historical java-tron code where the assertions are inactive by default. Assertions in
TrieImplare retained because its core implementation is derived from EthereumJ and the checks document internal node-type invariants. The Besu-derived Blake2bf assertion is retained for the same upstream-maintenance reason. Keeping these assertions avoids unnecessary divergence from their source implementations; replacing them with production runtime checks, if required, should be evaluated separately.The two tracked placeholder files are empty and have no source references. Their deletion is moved here so the CI-only PR remains limited to workflow changes.
This PR has been tested by:
./gradlew :common:test --tests org.tron.core.config.args.CommitteeConfigTest./gradlew :framework:test --tests org.tron.core.config.args.ArgsTest./gradlew -g /private/tmp/java-tron-gradle-home :framework:test --tests org.tron.core.tire.TrieTest./gradlew :common:jacocoTestReport :framework:jacocoTestReportCommitteeConfig.java:166andArgs.java:1048,1092../gradlew :framework:checkstyleTestgit diff --checkFollow up
Other startup failures and any replacement of upstream-derived assertions with explicit runtime checks should be evaluated separately according to their semantics and performance impact.
Extra details
TrieImplandBlake2bfMessageDigestare excluded from the assertion-removal scope.