Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-62059

JabberIMConnectionProvider.createConnection() swallows Exceptions

      Hi flow,

      this is a followup ticket to JENKINS-60193.
      While I was trying to find out why my connection didn't work, I came across this issue.

      When an XmppStringprepException occurs in JabberIMConnection(JabberPublisherDescriptor desc, AuthenticationHolder authentication), this exception is re-thrown as hudson.plugins.im.IMException.

      But in JabberIMConnectionProvider.createConnection(), only RuntimeExceptions are getting caught.

      So the log just tells me that the connection failed, but nut why it failed:

      	h.p.j.i.t.JabberIMConnectionProvider#createConnection: Creating XMPP JabberIMConnection
      	h.p.j.i.t.JabberIMConnectionProvider#createConnection: Connection failed
      

      So IMHO here Exception should get caught here, not only RuntimeException.

          [JENKINS-62059] JabberIMConnectionProvider.createConnection() swallows Exceptions

          Matthias Müller created issue -
          Matthias Müller made changes -
          Description Original: Hi [~flow],

          this is a followup ticket to JENKINS-60193.
          While I was trying to find out why my connection didn't work, I came across this issue.

          When an {{XmppStringprepException}} occurs in [JabberIMConnection(JabberPublisherDescriptor desc, AuthenticationHolder authentication)|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnection.java#L194], this exception is re-thrown as {{hudson.plugins.im.IMException}}.

          But in [JabberIMConnectionProvider.createConnection()|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnectionProvider.java#L72], only RuntimeExceptions are getting caught.

          So the log just tells me that the connection failed, but nut *why* it failed:
          {code} h.p.j.i.t.JabberIMConnectionProvider#createConnection: Creating XMPP JabberIMConnection
          h.p.j.i.t.JabberIMConnectionProvider#createConnection: Connection failed
          {code}

          So IMHO here {{Exception}}s should get caught here, not only {{RuntimeException}}.

          Regards
          Matthias
          New: Hi [~flow],

          this is a followup ticket to JENKINS-60193.
          While I was trying to find out why my connection didn't work, I came across this issue.

          When an {{XmppStringprepException}} occurs in [JabberIMConnection(JabberPublisherDescriptor desc, AuthenticationHolder authentication)|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnection.java#L194], this exception is re-thrown as {{hudson.plugins.im.IMException}}.

          But in [JabberIMConnectionProvider.createConnection()|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnectionProvider.java#L72], only RuntimeExceptions are getting caught.

          So the log just tells me that the connection failed, but nut *why* it failed:
          {code} h.p.j.i.t.JabberIMConnectionProvider#createConnection: Creating XMPP JabberIMConnection
          h.p.j.i.t.JabberIMConnectionProvider#createConnection: Connection failed
          {code}

          So IMHO here {{Exception}} should get caught here, not only {{RuntimeException}}.

          Regards
          Matthias

          I had argued that the try/catch should be removed completely and any kind of exception should be handled by higher layers. So the issue is actually that IMConnectionProvider.create() of the jabber-im plugin, silently swallows the exception.

          Florian Schmaus added a comment - I had argued that the try/catch should be removed completely and any kind of exception should be handled by higher layers. So the issue is actually that IMConnectionProvider.create() of the jabber-im plugin, silently swallows the exception.

          Florian Schmaus added a comment - https://github.com/jenkinsci/instant-messaging-plugin/pull/40
          Florian Schmaus made changes -
          Description Original: Hi [~flow],

          this is a followup ticket to JENKINS-60193.
          While I was trying to find out why my connection didn't work, I came across this issue.

          When an {{XmppStringprepException}} occurs in [JabberIMConnection(JabberPublisherDescriptor desc, AuthenticationHolder authentication)|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnection.java#L194], this exception is re-thrown as {{hudson.plugins.im.IMException}}.

          But in [JabberIMConnectionProvider.createConnection()|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnectionProvider.java#L72], only RuntimeExceptions are getting caught.

          So the log just tells me that the connection failed, but nut *why* it failed:
          {code} h.p.j.i.t.JabberIMConnectionProvider#createConnection: Creating XMPP JabberIMConnection
          h.p.j.i.t.JabberIMConnectionProvider#createConnection: Connection failed
          {code}

          So IMHO here {{Exception}} should get caught here, not only {{RuntimeException}}.

          Regards
          Matthias
          New: Hi [~flow],

          this is a followup ticket to JENKINS-60193.
           While I was trying to find out why my connection didn't work, I came across this issue.

          When an {{XmppStringprepException}} occurs in [JabberIMConnection(JabberPublisherDescriptor desc, AuthenticationHolder authentication)|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnection.java#L194], this exception is re-thrown as {{hudson.plugins.im.IMException}}.

          But in [JabberIMConnectionProvider.createConnection()|https://github.com/jenkinsci/jabber-plugin/blob/1.38/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnectionProvider.java#L72], only RuntimeExceptions are getting caught.

          So the log just tells me that the connection failed, but nut *why* it failed:
          {code:java}
          h.p.j.i.t.JabberIMConnectionProvider#createConnection: Creating XMPP JabberIMConnection
          h.p.j.i.t.JabberIMConnectionProvider#createConnection: Connection failed
          {code}
          So IMHO here {{Exception}} should get caught here, not only {{RuntimeException}}.
          Florian Schmaus made changes -
          Component/s New: instant-messaging-plugin [ 15637 ]
          Component/s Original: jabber-plugin [ 15507 ]
          Florian Schmaus made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]

            flow Florian Schmaus
            matthias_m Matthias Müller
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: