You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hama.apache.org by "JongYoon Lim (JIRA)" <ji...@apache.org> on 2015/07/24 03:40:04 UTC

[jira] [Updated] (HAMA-966) NioServerListener doesn't throw any exceptions.

     [ https://issues.apache.org/jira/browse/HAMA-966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

JongYoon Lim updated HAMA-966:
------------------------------
    Description: 
*NioServerListener* which extends *Thread* can't throw any exceptions because it swallows them in *run()* as follows. 
{code:java}
try {
  // code for server bootstraping and binding
} catch (Exception e) {
  e.printStackTrace();
}
{code}
This results in that *startServer()* can't catch *BindException* and retry to start the server recursively. There can be two options. 
* Option 1. Use *Thread.UncaughtExceptionHandler*.
* Option 2. Make *NioServerListener* extend *Callable* and use *get()* of *Future* to catch exceptions. 

I think *Option 2* looks better because the code could be more intuitive.



  was:
*NioServerListener* which extends *Thread" can't throw any exceptions because it swallows them in *run()* as follows. 
{code:java}
try {
  // code for server bootstraping and binding
} catch (Exception e) {
  e.printStackTrace();
}
{code}
This results in that *startServer()* can't catch *BindException* and retry to start the server recursively. There can be two options. 
* Option 1. Use *Thread.UncaughtExceptionHandler*.
* Option 2. Make *NioServerListener* extend *Callable* and use *get()* of *Future* to catch exceptions. 

I think *Option 2* looks better because the code could be more intuitive.




> NioServerListener doesn't throw any exceptions.
> -----------------------------------------------
>
>                 Key: HAMA-966
>                 URL: https://issues.apache.org/jira/browse/HAMA-966
>             Project: Hama
>          Issue Type: Bug
>          Components: bsp core
>    Affects Versions: 0.7.0
>            Reporter: JongYoon Lim
>
> *NioServerListener* which extends *Thread* can't throw any exceptions because it swallows them in *run()* as follows. 
> {code:java}
> try {
>   // code for server bootstraping and binding
> } catch (Exception e) {
>   e.printStackTrace();
> }
> {code}
> This results in that *startServer()* can't catch *BindException* and retry to start the server recursively. There can be two options. 
> * Option 1. Use *Thread.UncaughtExceptionHandler*.
> * Option 2. Make *NioServerListener* extend *Callable* and use *get()* of *Future* to catch exceptions. 
> I think *Option 2* looks better because the code could be more intuitive.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)