Qpid
  1. Qpid
  2. QPID-4188

improve MBeanInvocationHandler to allow logging exceptions/errors thrown during JMX operations

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.6, 0.8, 0.10, 0.12, 0.14, 0.16
    • Fix Version/s: 0.19
    • Component/s: Java Broker
    • Labels:
      None

      Description

      In some situations we may not have managed to log any exception in the Broker log before the exception reaches the JMX invocation layer and is sent to the client (where it may or may not be deserialized depending on the type of the exception).

      We should modify MBeanInvocationHandler to allow logging all target exceptions/errors as a fallback.

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        1h 39m 1 Alex Rudyy 03/Aug/12 15:27
        In Progress In Progress Reviewable Reviewable
        54s 1 Alex Rudyy 03/Aug/12 15:28
        Reviewable Reviewable Resolved Resolved
        1h 33m 1 Robbie Gemmell 03/Aug/12 17:01
        Resolved Resolved Closed Closed
        922d 4h 4m 1 Rob Godfrey 11/Feb/15 20:05
        Rob Godfrey made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Robbie Gemmell made changes -
        Status Ready To Review [ 10006 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Robbie Gemmell added a comment -

        Patch applied.

        Show
        Robbie Gemmell added a comment - Patch applied.
        Robbie Gemmell made changes -
        Summary Exceptions are not logged JMX management layer improve MBeanInvocationHandler to allow logging exceptions/errors thrown during JMX operations
        Description Broker does not log all exceptions occurring in management layer. Instead, exception is passed over the wire to the client where it may or may not be deserialized.

        For example, if management operation results in the exception occurring in the BDB code, we would have no Broker side log. On the client, the exception is not logged to a file, and the user sees only a "ClassDefNotFoundException" as such exceptions cannot be deserialized due to absence of BDB classes in the console classpath.

        Change MBeanInvocationHandler to log all target exceptions.
        In some situations we may not have managed to log any exception in the Broker log before the exception reaches the JMX invocation layer and is sent to the client (where it may or may not be deserialized depending on the type of the exception).

        We should modify MBeanInvocationHandler to allow logging all target exceptions/errors as a fallback.
        Hide
        Philip Harvey added a comment -

        code reviewed - looks good to me

        Show
        Philip Harvey added a comment - code reviewed - looks good to me
        Alex Rudyy made changes -
        Assignee Alex Rudyy [ alex.rufous ] Robbie Gemmell [ gemmellr ]
        Hide
        Alex Rudyy added a comment -

        Robbie,

        Could you please commit the patch?

        Show
        Alex Rudyy added a comment - Robbie, Could you please commit the patch?
        Alex Rudyy made changes -
        Status In Progress [ 3 ] Ready To Review [ 10006 ]
        Alex Rudyy made changes -
        Hide
        Alex Rudyy added a comment -

        Attached a patch resolving the issue

        Show
        Alex Rudyy added a comment - Attached a patch resolving the issue
        Alex Rudyy made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Alex Rudyy made changes -
        Field Original Value New Value
        Summary Not all exceptions in JMX management layer are logged into broker log Exceptions are not logged JMX management layer
        Description Broker does not log all exceptions occurring in management layer. Instead, exception is passed over the wire to the client where it may or may not be deserialized.

        For example, if management operation results in the exception occurring in the BDB code, we would have no Broker side log. On the client, the exception is not logged to a file, and the user sees only a "ClassDefNotFoundException" as such exceptions cannot be deserialized due to absence of BDB classes in the console classpath.

        Change MBeanInvocationHandler to log all target exceptions that do not extend JMException
        Broker does not log all exceptions occurring in management layer. Instead, exception is passed over the wire to the client where it may or may not be deserialized.

        For example, if management operation results in the exception occurring in the BDB code, we would have no Broker side log. On the client, the exception is not logged to a file, and the user sees only a "ClassDefNotFoundException" as such exceptions cannot be deserialized due to absence of BDB classes in the console classpath.

        Change MBeanInvocationHandler to log all target exceptions.
        Alex Rudyy created issue -

          People

          • Assignee:
            Robbie Gemmell
            Reporter:
            Alex Rudyy
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development