db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d..@apache.org
Subject svn commit: r1061516 - in /db/derby/code/trunk/java/engine/org/apache/derby/impl: sql/ store/raw/data/ store/raw/log/ store/raw/xact/ store/replication/master/ store/replication/net/
Date Thu, 20 Jan 2011 21:11:20 GMT
Author: dag
Date: Thu Jan 20 21:11:19 2011
New Revision: 1061516

URL: http://svn.apache.org/viewvc?rev=1061516&view=rev
Log:
DERBY-4741 Make Derby work reliably in the presence of thread interrupts

Patch derby-4741-sleeps-waits-3, which modifies all actions when
seeing interrupt in Object#wait and Thread#sleep inside
"org.apache.derby.impl.store.*" as well as in one other instance.

Thew new code just makes a note that an interrupt occured and then
retry. The old code sometimes threw 08000 (CONN_INTERRUPT) or just
ignored the interrupts.


Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BasePage.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer4.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogAccessFile.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogToFile.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/xact/XactFactory.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/master/AsynchronousLogShipper.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/net/ReplicationMessageReceive.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java Thu Jan
20 21:11:19 2011
@@ -42,6 +42,7 @@ import org.apache.derby.iapi.sql.diction
 import org.apache.derby.iapi.sql.execute.ExecutionContext;
 import org.apache.derby.impl.sql.compile.StatementNode;
 import org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext;
+import org.apache.derby.iapi.util.InterruptStatus;
 
 public class GenericStatement
 	implements Statement {
@@ -196,7 +197,7 @@ public class GenericStatement
 				try {
 					preparedStmt.wait();
 				} catch (InterruptedException ie) {
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}
 			}
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java
Thu Jan 20 21:11:19 2011
@@ -71,6 +71,7 @@ import org.apache.derby.iapi.reference.A
 import org.apache.derby.iapi.reference.Property;
 import org.apache.derby.iapi.reference.SQLState;
 import org.apache.derby.iapi.util.ByteArray;
+import org.apache.derby.iapi.util.InterruptStatus;
 import org.apache.derby.iapi.services.io.FileUtil;
 import org.apache.derby.iapi.util.ReuseFactory;
 import org.apache.derby.iapi.services.property.PropertyUtil;
@@ -2350,13 +2351,7 @@ public class BaseDataFileFactory
 					}
 					catch (InterruptedException ie) 
 					{
-						// make sure we are not stuck in frozen state if we
-						// caught an interrupt exception and the calling 
-                        // thread may not have a chance to call unfreeze
-						isFrozen = false;
-						freezeSemaphore.notifyAll();
-
-						throw StandardException.interrupt(ie);
+                        InterruptStatus.setInterrupted();
 					}
 				}
 			}
@@ -2399,7 +2394,7 @@ public class BaseDataFileFactory
 				}
 				catch (InterruptedException ie)
 				{
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}
 			}
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BasePage.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BasePage.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BasePage.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/BasePage.java Thu
Jan 20 21:11:19 2011
@@ -45,6 +45,8 @@ import org.apache.derby.iapi.store.raw.l
 
 import org.apache.derby.iapi.store.access.conglomerate.LogicalUndo;
 
+import org.apache.derby.iapi.util.InterruptStatus;
+
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.ObjectInput;
@@ -1683,7 +1685,7 @@ abstract class BasePage implements Page,
 					// Expect notify from releaseExclusive().
 					wait();
 				} catch (InterruptedException ie) {
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}
 			}
 
@@ -1712,6 +1714,7 @@ abstract class BasePage implements Page,
                 } 
                 catch (InterruptedException ie) 
                 {
+                    InterruptStatus.setInterrupted();
                 }
             }
 
@@ -1770,6 +1773,7 @@ abstract class BasePage implements Page,
                 } 
                 catch (InterruptedException ie) 
                 {
+                    InterruptStatus.setInterrupted();
                 }
             }
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java Thu
Jan 20 21:11:19 2011
@@ -37,6 +37,9 @@ import org.apache.derby.iapi.services.io
 
 import org.apache.derby.iapi.error.StandardException;
 import org.apache.derby.iapi.error.ExceptionSeverity;
+
+import org.apache.derby.iapi.util.InterruptStatus;
+
 import java.io.IOException;
 
 /**
@@ -563,7 +566,7 @@ public abstract class CachedPage extends
 				} 
                 catch (InterruptedException ie) 
                 {
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}
 			}
 
@@ -586,8 +589,7 @@ public abstract class CachedPage extends
 				} 
                 catch (InterruptedException ie) 
 				{
-					inClean = false;
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}
 			}
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer.java
Thu Jan 20 21:11:19 2011
@@ -570,7 +570,7 @@ class RAFContainer extends FileContainer
                             // we re-grab monitor on "this" (which recovery
                             // needs) and retry writeRAFHeader.
                             try {
-                                Thread.sleep(500); // 0.5s
+                                Thread.sleep(INTERRUPT_RETRY_SLEEP);
                             } catch (InterruptedException ee) {
                                 // This thread received an interrupt as
                                 // well, make a note.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer4.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer4.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer4.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/data/RAFContainer4.java
Thu Jan 20 21:11:19 2011
@@ -314,10 +314,7 @@ class RAFContainer4 extends RAFContainer
                     try {
                         channelCleanupMonitor.wait();
                     } catch (InterruptedException e) {
-                        InterruptStatus.noteAndClearInterrupt(
-                            "interrupt while waiting to gain entry",
-                            threadsInPageIO,
-                            hashCode());
+                        InterruptStatus.setInterrupted();
                     }
 
                 }
@@ -517,10 +514,7 @@ class RAFContainer4 extends RAFContainer
                     try {
                         channelCleanupMonitor.wait();
                     } catch (InterruptedException e) {
-                        InterruptStatus.noteAndClearInterrupt(
-                            "interrupt while waiting to gain entry",
-                            threadsInPageIO,
-                            hashCode());
+                        InterruptStatus.setInterrupted();
                     }
 
                 }
@@ -833,7 +827,7 @@ class RAFContainer4 extends RAFContainer
             try {
                 Thread.sleep(10);
             } catch (InterruptedException te) {
-                // again! No need, we have already taken note, pal!
+                InterruptStatus.setInterrupted();
             }
         }
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogAccessFile.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogAccessFile.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogAccessFile.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogAccessFile.java
Thu Jan 20 21:11:19 2011
@@ -31,7 +31,6 @@ import org.apache.derby.io.StorageRandom
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.SyncFailedException;
-import java.io.InterruptedIOException;
 import java.util.LinkedList;
 
 import org.apache.derby.iapi.services.io.FormatIdOutputStream;
@@ -39,6 +38,7 @@ import org.apache.derby.iapi.services.io
 import org.apache.derby.iapi.store.replication.master.MasterFactory;
 import org.apache.derby.iapi.store.raw.RawStoreFactory;
 
+import org.apache.derby.iapi.util.InterruptStatus;
 
 /**
 	Wraps a RandomAccessFile file to provide buffering
@@ -513,11 +513,7 @@ public class LogAccessFile 
 						wait();
 					}catch (InterruptedException ie) 
 					{
-						//do nothing, let the flush request to complete.
-						//because it possible that other thread which is
-						//currently might have completed this request also ,
-						//if exited  on interrupt and throw exception, can not
-						//be sure whether this transaction is COMMITTED ot not.
+                        InterruptStatus.setInterrupted();
 					}
 				}
 		
@@ -676,7 +672,8 @@ public class LogAccessFile 
                     Thread.sleep( 200 ); 
                 }
                 catch( InterruptedException ie )
-                {   //does not matter weather I get interrupted or not
+                {
+                    InterruptStatus.setInterrupted();
                 }
 
                 if( i > 20 )

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogToFile.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogToFile.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogToFile.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/log/LogToFile.java Thu
Jan 20 21:11:19 2011
@@ -91,6 +91,9 @@ import org.apache.derby.io.WritableStora
 import org.apache.derby.io.StorageFile;
 import org.apache.derby.io.StorageRandomAccessFile;
 
+import org.apache.derby.iapi.util.InterruptStatus;
+import org.apache.derby.iapi.util.InterruptDetectedException;
+
 import java.io.File; // Plain files are used for backups
 import java.io.IOException;
 import java.io.SyncFailedException;
@@ -99,6 +102,7 @@ import java.io.DataOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
 import java.io.FileNotFoundException;
+import java.io.InterruptedIOException;
 
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -715,7 +719,7 @@ public final class LogToFile implements 
                     try {
                         slaveRecoveryMonitor.wait();
                     } catch (InterruptedException ie) {
-                        // do nothing
+                        InterruptStatus.setInterrupted();
                     }
                 }
             }
@@ -1522,7 +1526,7 @@ public final class LogToFile implements 
 
 		@exception StandardException Derby Standard Error Policy 
 	*/
-	protected boolean checkpointWithTran(
+    private boolean checkpointWithTran(
     RawTransaction      cptran, 
     RawStoreFactory     rsf,
     DataFactory         df,
@@ -1601,7 +1605,7 @@ public final class LogToFile implements 
                             }	
                             catch (InterruptedException ie)
                             {
-                                throw StandardException.interrupt(ie);
+                                InterruptStatus.setInterrupted();
                             }	
                         }
                     }
@@ -2023,7 +2027,7 @@ public final class LogToFile implements 
 				}
 				catch (InterruptedException ie)
 				{
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}	
 			}
 
@@ -2985,7 +2989,7 @@ public final class LogToFile implements 
                     try {
                         slaveRecoveryMonitor.wait();
                     } catch (InterruptedException ie) {
-                        // do nothing
+                        InterruptStatus.setInterrupted();
                     }
                 }
             }
@@ -3946,7 +3950,7 @@ public final class LogToFile implements 
 						} 
 						catch (InterruptedException ie) 
 						{
-							throw StandardException.interrupt(ie);
+                            InterruptStatus.setInterrupted();
 						}
 					}
 
@@ -4008,7 +4012,7 @@ public final class LogToFile implements 
 						}
 						catch (InterruptedException ie)
 						{
-							throw StandardException.interrupt(ie);
+                            InterruptStatus.setInterrupted();
 						}
 					}
 					else
@@ -4210,7 +4214,7 @@ public final class LogToFile implements 
                 }
                 catch( InterruptedException ie )
                 {   
-                    //does not matter weather I get interrupted or not
+                    InterruptStatus.setInterrupted();
                 }
 
                 if( i > 20 )
@@ -4974,7 +4978,7 @@ public final class LogToFile implements 
 				}	
 				catch (InterruptedException ie)
 				{
-					throw StandardException.interrupt(ie);
+                    InterruptStatus.setInterrupted();
 				}	
 			}
 		

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/xact/XactFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/xact/XactFactory.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/xact/XactFactory.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/xact/XactFactory.java
Thu Jan 20 21:11:19 2011
@@ -66,6 +66,7 @@ import org.apache.derby.iapi.types.DataV
 
 import org.apache.derby.iapi.error.StandardException;
 
+import org.apache.derby.iapi.util.InterruptStatus;
 
 import java.util.Enumeration;
 import java.util.Properties;
@@ -1068,11 +1069,8 @@ public class XactFactory implements Tran
      *             is blocked. 
      * @return     <tt>true</tt> if backup is blocked.
      *			   <tt>false</tt> otherwise.
-     * @exception StandardException if interrupted while waiting for a 
-     *           backup  to complete.
      */
 	protected boolean blockBackup(boolean wait)
-        throws StandardException 
 	{
 		synchronized(backupSemaphore) {
             // do not allow backup blocking operations, if online backup is
@@ -1084,7 +1082,7 @@ public class XactFactory implements Tran
                         try {
                             backupSemaphore.wait();
                         } catch (InterruptedException ie) {
-                            throw StandardException.interrupt(ie);
+                            InterruptStatus.setInterrupted();
                         }
                     }
                 }else {
@@ -1133,10 +1131,10 @@ public class XactFactory implements Tran
 	 * @return     <tt>true</tt> if no backup blocking operations are in 
      *             progress
 	 *             <tt>false</tt> otherwise.
-	 * @exception StandardException if interrupted or a runtime exception occurs
+     * @exception RuntimeException if runtime exception occurs, in which case
+     *             other threads blocked on backupSemaphore are notified
 	 */
 	public boolean blockBackupBlockingOperations(boolean wait) 
-		throws StandardException 
 	{
 		synchronized(backupSemaphore) {
 			if (wait) {
@@ -1151,14 +1149,7 @@ public class XactFactory implements Tran
 							backupSemaphore.wait();
 						}
 						catch (InterruptedException ie) {
-							// make sure we are not stuck in the backup state 
-                            // if we caught an interrupt exception and the 
-                            // calling thread may not have a chance to clear 
-                            // the in backup state.
-
-							inBackup = false;
-							backupSemaphore.notifyAll();
-							throw StandardException.interrupt(ie);
+                            InterruptStatus.setInterrupted();
 						}
 					}
 				}

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/master/AsynchronousLogShipper.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/master/AsynchronousLogShipper.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/master/AsynchronousLogShipper.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/master/AsynchronousLogShipper.java
Thu Jan 20 21:11:19 2011
@@ -34,6 +34,7 @@ import org.apache.derby.impl.store.repli
 import org.apache.derby.impl.store.replication.buffer.ReplicationLogBuffer;
 import org.apache.derby.impl.store.replication.net.ReplicationMessage;
 import org.apache.derby.impl.store.replication.net.ReplicationMessageTransmit;
+import org.apache.derby.iapi.util.InterruptStatus;
 
 /**
  * <p>
@@ -221,8 +222,7 @@ public class AsynchronousLogShipper exte
                     }
                 }
             } catch (InterruptedException ie) {
-                //Interrupt the log shipping thread.
-                return;
+                InterruptStatus.setInterrupted();
             } catch (IOException ioe) {
                 //The transmitter is recreated if the connection to the
                 //slave can be re-established.
@@ -334,6 +334,7 @@ public class AsynchronousLogShipper exte
             try {
                 forceFlushSemaphore.wait(DEFAULT_FORCEFLUSH_TIMEOUT);
             } catch (InterruptedException ex) {
+                InterruptStatus.setInterrupted();
             }
         }
     }

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/net/ReplicationMessageReceive.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/net/ReplicationMessageReceive.java?rev=1061516&r1=1061515&r2=1061516&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/net/ReplicationMessageReceive.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/replication/net/ReplicationMessageReceive.java
Thu Jan 20 21:11:19 2011
@@ -34,6 +34,7 @@ import org.apache.derby.iapi.reference.M
 import org.apache.derby.iapi.reference.SQLState;
 import org.apache.derby.iapi.services.monitor.Monitor;
 import org.apache.derby.impl.store.raw.log.LogCounter;
+import org.apache.derby.iapi.util.InterruptStatus;
 
 /**
  * This class is the Receiver (viz. Socket server or listener) part of the
@@ -82,6 +83,12 @@ public class ReplicationMessageReceive {
     /** Used for synchronization of the ping thread */
     private final Object sendPingSemaphore = new Object();
 
+    /**
+     * Whether or not the ping thread has been notified to check connection.
+     * Protected by sendPingSemaphore.
+     */
+    private boolean doSendPing = false;
+
     /** Used for synchronization when waiting for a ping reply message */
     private final Object receivePongSemaphore = new Object();
 
@@ -464,17 +471,40 @@ public class ReplicationMessageReceive {
         // synchronize on receivePongSemaphore so that this thread is
         // guaraneed to get to receivePongSemaphore.wait before the pong
         // message is processed in readMessage
+
         synchronized (receivePongSemaphore) {
             connectionConfirmed = false;
+
+            long startWaitingatTime;
+            long giveupWaitingAtTime;
+            long nextWait = DEFAULT_PING_TIMEOUT;
+
             synchronized (sendPingSemaphore) {
                 // Make ping thread send a ping message to the master
+                doSendPing = true;
                 sendPingSemaphore.notify();
+
+                // want result within DEFAULT_PING_TIMEOUT millis.
+                startWaitingatTime = System.currentTimeMillis();
+                giveupWaitingAtTime = startWaitingatTime + DEFAULT_PING_TIMEOUT;
             }
 
-            try {
-                // Wait for the pong response message
-                receivePongSemaphore.wait(DEFAULT_PING_TIMEOUT);
-            } catch (InterruptedException ex) {
+            while (true) {
+                try {
+                    // Wait for the pong response message
+                    receivePongSemaphore.wait(nextWait);
+                } catch (InterruptedException ex) {
+                    InterruptStatus.setInterrupted();
+                }
+
+                nextWait = giveupWaitingAtTime - System.currentTimeMillis();
+
+                if (!connectionConfirmed && nextWait > 0) {
+                    // we could have been interrupted or seen a spurious
+                    // wakeup, so wait a bit longer
+                    continue;
+                }
+                break;
             }
         }
         return connectionConfirmed;
@@ -500,8 +530,17 @@ public class ReplicationMessageReceive {
             try {
                 while (!killPingThread) {
                     synchronized (sendPingSemaphore) {
-                        sendPingSemaphore.wait();
+                        while (!doSendPing) {
+                            try {
+                                sendPingSemaphore.wait();
+                            } catch (InterruptedException e) {
+                                InterruptStatus.setInterrupted();
+                            }
+                        }
+
+                        doSendPing = false;
                     }
+
                     if (killPingThread) {
                         // The thread was notified to terminate
                         break;
@@ -509,7 +548,6 @@ public class ReplicationMessageReceive {
 
                     sendMessage(pingMsg);
                 }
-            } catch (InterruptedException ie) {
             } catch (IOException ioe) {
             // For both exceptions: Do nothing. isConnectedToMaster will return
             // 'false' and appropriate action will be taken.



Mime
View raw message