From 944f8851934afa30bd23b17ae008c1fd91dd0121 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 30 Aug 2016 17:59:29 +0200 Subject: [server] Improve thrift retry handling: Don't retry for TInvalidTokenException --- .../src/main/java/org/openslx/bwlp/sat/App.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'dozentenmodulserver/src/main/java') diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java index 3589b640..44ee85e9 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/App.java @@ -19,7 +19,6 @@ import org.openslx.bwlp.sat.database.Updater; import org.openslx.bwlp.sat.database.mappers.DbConfiguration; import org.openslx.bwlp.sat.database.mappers.DbUser; import org.openslx.bwlp.sat.fileserv.FileServer; -import org.openslx.bwlp.sat.mail.MailTemplatePlain.Template; import org.openslx.bwlp.sat.maintenance.DeleteOldImages; import org.openslx.bwlp.sat.maintenance.DeleteOldLectures; import org.openslx.bwlp.sat.maintenance.MailFlusher; @@ -31,6 +30,8 @@ import org.openslx.bwlp.sat.thrift.cache.VirtualizerList; import org.openslx.bwlp.sat.util.Configuration; import org.openslx.bwlp.sat.util.Identity; import org.openslx.bwlp.sat.web.WebServer; +import org.openslx.bwlp.thrift.iface.TInvalidTokenException; +import org.openslx.sat.thrift.version.Version; import org.openslx.thrifthelper.ThriftManager; import org.openslx.thrifthelper.ThriftManager.ErrorCallback; import org.openslx.util.QuickTimer; @@ -54,6 +55,7 @@ public class App { LOGGER.info("****************************************************************"); LOGGER.info("******************* Starting Application ***********************"); LOGGER.info("****************************************************************"); + LOGGER.info("RPC version " + Version.VERSION); // get Configuration try { @@ -93,11 +95,19 @@ public class App { LOGGER.warn("Thrift Client error for " + method + ", FAIL."); return false; } - LOGGER.info("Thrift error " + ((TException) t).getCause().toString() + " for " - + method + ", retrying..."); + if (t instanceof TInvalidTokenException) + return false; + if (((TException) t).getCause() == null) { + LOGGER.info("Thrift error " + t.toString() + " for " + + method + ", retrying..."); + } else { + LOGGER.info("Thrift error " + ((TException) t).getCause().toString() + " for " + + method + ", retrying..."); + } try { Thread.sleep(failCount * 250); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); } return true; } -- cgit v1.2.3-55-g7522