ome / omero-blitz

Gradle project containing Ice remoting code for OMERO
https://www.openmicroscopy.org/omero
GNU General Public License v2.0
0 stars 15 forks source link

omero.client.createSession(String, String) retry logging does not provide the reason for failed connection #122

Open aherbert opened 2 years ago

aherbert commented 2 years ago

I have a connection issue with OMERO Insight but the logging outputs a non-helpful message.

The message logged to the console during the Insight's retry attempts is:

> omero-insight                                                                                                                        
-! 10/02/2022 14:27:33:914 warning: Initializer: null - createSession retry: 1                                                       
-! 10/02/2022 14:27:38:928 warning: Initializer: null - createSession retry: 2 

The null in this message can be traced to logging in omero-blitz omero.client on line 803.

The null is meant to be a reason that is set in the catch block handling the exception. However the reason variable is declared inside the retry loop while loop. Thus is always null when the retry reason is logged.

See omero.client Line 801

If you move this declaration outside the while loop:

        int retries = 0;
        String reason = null;
        while (retries < 3) {

Then the logged message will be useful.

Note that if the Glacier2.SessionPrx prx ends up being null after the failed connection attempts, the last recorded reason can then also be thrown in the line:

        if (null == prx) {
            // TODO: Add 'reason' to this error if not null
            throw new ClientError("Obtained null object proxy");
        }