* before firing rules again.  This is a "half" time, so that
                 * we can multiply it by two without overflowing the word size.
                 */
-               long halfMaxSleepTime = 5000 / 2;
+               long halfMaxSleepTime = 5000L / 2L;
 
                /**
                 * Constructor - initialize variables and create thread
                                
                        } catch (InterruptedException e) {
                                logger.error("stopThread exception: ", e);
+                               Thread.currentThread().interrupt();
                        }
                        
                        // verify that it's done
                                                // no rules fired -- increase poll delay
                                                sleepTime = 2 * Math.min(halfMaxSleepTime, sleepTime);
                                        }
-                                       
-                               } catch (Throwable e) {
-                                       logger.error("startThread exception: ", e);
-                               }
-                               
+                               } catch (Exception | LinkageError e) {
+                                       logger.error("Exception during kieSession.fireAllRules", e);
+                               }                               
                        
                                try {
                                        if(stopped.await(sleepTime, TimeUnit.MILLISECONDS)) {
                                        
                                } catch (InterruptedException e) {
                                        logger.error("startThread exception: ", e);
+                                       Thread.currentThread().interrupt();
                                        break;
                                }
                        }
 
           this.backupController(controllerName);
         }
       } catch (final Exception e) {
-        logger.info("{}: no existing {} properties", this, controllerName);
+        logger.info("{}: no existing {} properties {}", this, controllerName, e);
         // continue
       }
     }