db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Myrna van Lunteren (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-1465) NetworkServerControl.start() should throw an exception and not just print exceptions if the server fails to start
Date Wed, 24 Dec 2008 00:24:44 GMT

    [ https://issues.apache.org/jira/browse/DERBY-1465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659007#action_12659007
] 

Myrna van Lunteren commented on DERBY-1465:
-------------------------------------------

I'm still looking at the previous comment, but the last comment throws me for a loop.

In the latest patch, using the exceptionHolder array as suggested and not using a global variable
to hold the exception, we do not know what kind of exception it is in the start() method.
So we can't actually check for the BindException class in the test, all we have there is a
java.lang.Exception.

When we use a global variable (we used runtimeException in earlier patches), and assign the
Exception underlying the PrivilegedActionException at the top of the privilegedException block
to it, then the cause of the Exception, at least  for IOExceptions (i.e. in the case of the
java.net.BindException the test is forcing) is saved off. Like so:
		} catch (PrivilegedActionException e) {
			Exception e1 = e.getException();
			runtimeException = e1;

I could reinstate the runtimeException, and in the start() method do some tomfoolery like:
                        if (runtimeException != null)
                            exceptionHolder[0] = runtimeException;
                        else
                            exceptionHolder[0] = e; 
Then I can check for the bindException instance in the test...But that's reintroducing the
global variable...
What is the better approach?
I do like the fact that with the global variable you can actually check for IOExceptions in
the test (and thus app) code, gives more info/control...But maybe it's enough to have an Exception?


> NetworkServerControl.start() should throw an exception and not just  print  exceptions
 if the server fails to start
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1465
>                 URL: https://issues.apache.org/jira/browse/DERBY-1465
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Server
>    Affects Versions: 10.1.2.1
>            Reporter: Kathey Marsden
>            Priority: Minor
>         Attachments: DERBY-1465.diff3, DERBY-1465.diff4, DERBY-1465.diff5, DERBY-1465.diff6,
DERBY-1465.diff7, DERBY-1465_diff.txt, DERBY-1465_diff.txt, DERBY-1465_stat.txt, DERBY-1465_stat.txt,
releaseNote.html, releaseNote.html, releaseNote.html
>
>
> NetworkServerControl.start()  will not throw an exception  if another server is already
running on the same port.    I am not sure but think perhaps this was changed at  one point
to accomodate the derby.drda.startNetworkServer property  so that the embedded server could
continue to boot even if the network server failed to start, but  I think this is wrong for
normal usage.
> http://www.nabble.com/Questions-about-Network-Server-API-Behavior-p5055814.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message