From a3da201152e7b68176554470d7ed02d3b46946b7 Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Fri, 14 Jan 2011 10:23:04 +0000 Subject: [PATCH] bugfix: if calling openBIS method from DSS fails with InvalidSessionException the session has to be renewed and the operation has to be retried. SVN: 19422 --- .../server/EncapsulatedOpenBISService.java | 43 ++++++++++++++++--- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java index b7cb2a1b0d4..3b75ec0c33d 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java @@ -818,25 +818,58 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer public List<Person> listAdministrators() { - return service.listAdministrators(sessionToken); + checkSessionToken(); + try + { + return service.listAdministrators(sessionToken); + } catch (final InvalidSessionException ex) + { + authenticate(); + return service.listAdministrators(sessionToken); + } } public Person tryPersonWithUserIdOrEmail(String useridOrEmail) { - return service.tryPersonWithUserIdOrEmail(sessionToken, useridOrEmail); + checkSessionToken(); + try + { + return service.tryPersonWithUserIdOrEmail(sessionToken, useridOrEmail); + } catch (final InvalidSessionException ex) + { + authenticate(); + return service.tryPersonWithUserIdOrEmail(sessionToken, useridOrEmail); + } } public Sample registerSampleAndDataSet(NewSample newSample, NewExternalData externalData, String userIdOrNull) throws UserFailureException { - return service - .registerSampleAndDataSet(sessionToken, newSample, externalData, userIdOrNull); + checkSessionToken(); + try + { + return service.registerSampleAndDataSet(sessionToken, newSample, externalData, + userIdOrNull); + } catch (final InvalidSessionException ex) + { + authenticate(); + return service.registerSampleAndDataSet(sessionToken, newSample, externalData, + userIdOrNull); + } } public Sample updateSampleAndRegisterDataSet(SampleUpdatesDTO newSample, NewExternalData externalData) { - return service.updateSampleAndRegisterDataSet(sessionToken, newSample, externalData); + checkSessionToken(); + try + { + return service.updateSampleAndRegisterDataSet(sessionToken, newSample, externalData); + } catch (final InvalidSessionException ex) + { + authenticate(); + return service.updateSampleAndRegisterDataSet(sessionToken, newSample, externalData); + } } } \ No newline at end of file -- GitLab