Hi Frank,
On 3/08/2012 5:39 PM, Frank Ding wrote:
Hi guys,
I found that in java.lang.Terminator, setup() method,
The following code of registering default signal handlers can be improved:
/ try {
Signal.handle(new Signal("INT"), sh);
Signal.handle(new Signal("TERM"), sh);
} catch (IllegalArgumentException e) {
}/
The revised code is illustrated below:
/ try {
Signal.handle(new Signal("INT"), sh);
} catch (IllegalArgumentException e) {
}
try {
Signal.handle(new Signal("TERM"), sh);
} catch (IllegalArgumentException e) {
}
/The improved version makes more sense since exception thrown from first
Signal.handle call does not affect subsequent calls. This is more
consistent with its original intention.
A patch I made is available @
http://cr.openjdk.java.net/~youdwei/ojdk-430/webrev.00//
/Could anybody please take a look at it? Thanks in advance/
Can you explain the context for this change. It seems to me that there
is an expectation that the group of signals act homogenously: all or
none, whereas your change make it appear that the success/failure for
each signal is independent. Understanding exactly when/why the
IllegalArgumentException is thrown is important here.
I don't like seeing the duplicated comment, perhaps that can be factored
out to the head of the block of code?
Thanks,
David Holmes
Best regards,
Frank
/