-
Notifications
You must be signed in to change notification settings - Fork 642
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Enhancement] InterruptedExceptions should not be ignored in the code.[ProducerImpl] #3830
Comments
|
Ooops. I misunderstood your meaning. Thanks. |
Can I work on this issue? kindly assign it to me! |
@j1803248734 You are welcome to submit a PR. |
Completed, pull request submitted, please review. |
I observed that the sendOneway, sendAsync, and reply methods did not return the sendResult object. Why does the send method need to return it? |
@jevinjiang
|
#4791) * [ISSUE #3830] InterruptedExceptions should not be ignored in the code. * [ISSUE #3830] fix code style * [ISSUE #3830] delete Unneeded throw * [ISSUE #3830] rethrown InterruptedException * [ISSUE #3830] InterruptedException return new SendResult --------- Co-authored-by: JiangShuJu <[email protected]>
Search before asking
Enhancement Request
located at:
eventmesh-storage-plugin/eventmesh-storage-rocketmq/src/main/java/org/apache/eventmesh/storage/rocketmq/producer/ProducerImpl.java line 85,99,113,140,
analysis and explanation:
InterruptedExceptions should never be ignored in the code, and simply logging the exception counts in this case as "ignoring". The throwing of the InterruptedException clears the interrupted state of the Thread, so if the exception is not handled properly the information that the thread was interrupted will be lost. Instead, InterruptedExceptions should either be rethrown - immediately or after cleaning up the method’s state - or the thread should be re-interrupted by calling Thread.interrupt() even if this is supposed to be a single-threaded application. Any other course of action risks delaying thread shutdown and loses the information that the thread was interrupted - probably without finishing its task.
Similarly, the ThreadDeath exception should also be propagated. According to its JavaDoc:
If ThreadDeath is caught by a method, it is important that it be rethrown so that the thread actually dies.
Describe the solution you'd like
Just for reference, if you have better modifications, please correct me:
Remove this useless assignment; "msg" already holds the assigned value along all execution paths.
Are you willing to submit PR?
The text was updated successfully, but these errors were encountered: