Derby
  1. Derby
  2. DERBY-5413

NetworkServerControl#main can exit with status 1 without printing an error message to console

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Not a Problem
    • Affects Version/s: 10.8.1.2
    • Fix Version/s: 10.8.2.2, 10.9.1.0
    • Component/s: Network Server
    • Labels:
      None

      Description

      Cf this piece of code in main

      catch (Exception e)
      {
      //if there was an error, exit(1)
      if ((e.getMessage() == null) ||
      !e.getMessage().equals(NetworkServerControlImpl.UNEXPECTED_ERR) ||
      printErrors
      )

      { if (server != null) server.consoleExceptionPrint(e); else e.printStackTrace(); // default output stream is System.out }

      // else, we've already printed a trace, so just exit.
      System.exit(1);

      The call "server.consoleExceptionPrint(e)" will actually not print anything unless the debug flag "NetworkServerControlImpl#debugOutput" has ben set to true which it isn't a priori.

      I think it should be replaced by a call to server.consoleExceptionPrintTrace(e), which will print unconditionally.

      1. derby-5413.diff
        0.5 kB
        Dag H. Wanvik

        Activity

        Hide
        Knut Anders Hatlen added a comment -

        [bulk update] Close all resolved issues that haven't been updated for more than one year.

        Show
        Knut Anders Hatlen added a comment - [bulk update] Close all resolved issues that haven't been updated for more than one year.
        Hide
        Dag H. Wanvik added a comment -

        Reverted the patch on trunk and 10.8 branch @ svn 1177482 and 1177483. Sorry for the noise.

        Show
        Dag H. Wanvik added a comment - Reverted the patch on trunk and 10.8 branch @ svn 1177482 and 1177483. Sorry for the noise.
        Hide
        Dag H. Wanvik added a comment -

        I think I'll need to revert this change. I must have missed an error in my regressions. It turns out tools/derbyrunjartest.java breaks with this patch:

        > Fri Sep 30 01:56:07 GMT+01:00 2011 : DRDA_NoCommand.U:No command given.
        > java.lang.Exception: DRDA_NoCommand.U:No command given.
        Test Failed.

        The logic in the server is confusing. It turns out the extra message above comes from my patch. When the server analyzes incorrect commands in derbyrunjartest, the serves prints a usage legend while inside NetwrokControlServerImpl. Since something has already been printed, the above exception is suppressed by default. "server.consoleExceptionPrint(e)" does nothing unless a debug flag is on - contrary to its name if I may add, hence confusing...

        The reason I wanted to make sure we printed unconditionally was code added for DERBY-5363 which, if it saw an error, had printed nothing at this point in the code. I'll let that code handle its own exception printing instead, and back this patch out. Note, the server can still die silently if an exception with string NetworkServerControlImpl.UNEXPECTED_ERR, but this would be a coding error I presume.

        Show
        Dag H. Wanvik added a comment - I think I'll need to revert this change. I must have missed an error in my regressions. It turns out tools/derbyrunjartest.java breaks with this patch: > Fri Sep 30 01:56:07 GMT+01:00 2011 : DRDA_NoCommand.U:No command given. > java.lang.Exception: DRDA_NoCommand.U:No command given. Test Failed. The logic in the server is confusing. It turns out the extra message above comes from my patch. When the server analyzes incorrect commands in derbyrunjartest, the serves prints a usage legend while inside NetwrokControlServerImpl. Since something has already been printed, the above exception is suppressed by default. "server.consoleExceptionPrint(e)" does nothing unless a debug flag is on - contrary to its name if I may add, hence confusing... The reason I wanted to make sure we printed unconditionally was code added for DERBY-5363 which, if it saw an error, had printed nothing at this point in the code. I'll let that code handle its own exception printing instead, and back this patch out. Note, the server can still die silently if an exception with string NetworkServerControlImpl.UNEXPECTED_ERR, but this would be a coding error I presume.
        Hide
        Dag H. Wanvik added a comment -

        Backported and committed on 10.8 as svn 1177352, closing.

        Note: I saw during my commit that a change was made to the mergeproperties of NetCursor.java even though I had made no changes to that file:

        Property changes on: java/client/org/apache/derby/client/net/NetCursor.java
        ___________________________________________________________________
        Modified: svn:mergeinfo
        Merged /db/derby/code/trunk/java/client/org/apache/derby/client/net/NetCursor.java:r1177324

        Does anyone know why this happens? I see in its mergeinfo patches have been merged from 10.7 branch as well..

        Show
        Dag H. Wanvik added a comment - Backported and committed on 10.8 as svn 1177352, closing. Note: I saw during my commit that a change was made to the mergeproperties of NetCursor.java even though I had made no changes to that file: Property changes on: java/client/org/apache/derby/client/net/NetCursor.java ___________________________________________________________________ Modified: svn:mergeinfo Merged /db/derby/code/trunk/java/client/org/apache/derby/client/net/NetCursor.java:r1177324 Does anyone know why this happens? I see in its mergeinfo patches have been merged from 10.7 branch as well..
        Hide
        Dag H. Wanvik added a comment -

        Yes, Myrna, I think so. I am actually in the process of doing it right now

        Show
        Dag H. Wanvik added a comment - Yes, Myrna, I think so. I am actually in the process of doing it right now
        Hide
        Myrna van Lunteren added a comment -

        Is this suitable for backport to 10.8?

        Show
        Myrna van Lunteren added a comment - Is this suitable for backport to 10.8?
        Hide
        Dag H. Wanvik added a comment -

        Resolving.

        Show
        Dag H. Wanvik added a comment - Resolving.
        Hide
        Dag H. Wanvik added a comment -

        Committed as svn 1177324 on trunk.

        Show
        Dag H. Wanvik added a comment - Committed as svn 1177324 on trunk.
        Hide
        Knut Anders Hatlen added a comment -

        Looks like a good improvement. +1

        Show
        Knut Anders Hatlen added a comment - Looks like a good improvement. +1
        Hide
        Dag H. Wanvik added a comment -

        If there are no comments on this patch, I will commit it over the week-end.

        Show
        Dag H. Wanvik added a comment - If there are no comments on this patch, I will commit it over the week-end.

          People

          • Assignee:
            Dag H. Wanvik
            Reporter:
            Dag H. Wanvik
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development