You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by kr...@apache.org on 2011/08/23 11:09:37 UTC

svn commit: r1160590 - in /db/derby/code/branches/10.8: ./ java/drda/org/apache/derby/impl/drda/DRDAConnThread.java

Author: kristwaa
Date: Tue Aug 23 09:09:36 2011
New Revision: 1160590

URL: http://svn.apache.org/viewvc?rev=1160590&view=rev
Log:
DERBY-5271: Client may hang if the server crashes due to a java.lang.Error

Merged fix from trunk (revision 1158108).

Modified:
    db/derby/code/branches/10.8/   (props changed)
    db/derby/code/branches/10.8/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java

Propchange: db/derby/code/branches/10.8/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 23 09:09:36 2011
@@ -1,2 +1,2 @@
 /db/derby/code/branches/10.7:1061570,1061578,1082235
-/db/derby/code/trunk:1063809,1088633,1089795,1091000,1091221,1091285,1092067,1092795,1094315,1094572,1094728,1095247,1096741,1096890,1097247,1097249,1097460,1097469,1097471,1098033,1101059,1101839,1102620,1102826,1103681,1103718,1103742,1125305,1126358,1126468,1127825,1127883,1128243,1128942,1129136,1129764,1129797,1130077,1130084,1130632,1130895,1131030,1131272,1132546,1132664,1132747,1132860,1132928,1133304,1133317,1133741,1133752,1134139,1136363,1136371,1136397,1136844,1137213,1138201,1138341,1138444,1138787,1138795,1139449,1139451,1141924,1142583,1142635,1145057,1146644,1146915,1146962,1147219,1147242,1147335,1148344,1148354,1148429,1148658,1149054,1149090,1149270,1149482,1149662,1151101,1151612
+/db/derby/code/trunk:1063809,1088633,1089795,1091000,1091221,1091285,1092067,1092795,1094315,1094572,1094728,1095247,1096741,1096890,1097247,1097249,1097460,1097469,1097471,1098033,1101059,1101839,1102620,1102826,1103681,1103718,1103742,1125305,1126358,1126468,1127825,1127883,1128243,1128942,1129136,1129764,1129797,1130077,1130084,1130632,1130895,1131030,1131272,1132546,1132664,1132747,1132860,1132928,1133304,1133317,1133741,1133752,1134139,1136363,1136371,1136397,1136844,1137213,1138201,1138341,1138444,1138787,1138795,1139449,1139451,1141924,1142583,1142635,1145057,1146644,1146915,1146962,1147219,1147242,1147335,1148344,1148354,1148429,1148658,1149054,1149090,1149270,1149482,1149662,1151101,1151612,1158108

Modified: db/derby/code/branches/10.8/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java?rev=1160590&r1=1160589&r2=1160590&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java (original)
+++ db/derby/code/branches/10.8/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java Tue Aug 23 09:09:36 2011
@@ -318,7 +318,22 @@ class DRDAConnThread extends Thread {
 				{
 					handleException(e);
 				}
-			}
+            } catch (Error error) {
+                // Do as little as possible, but try to cut loose the client
+                // to avoid that it hangs in a socket read-call.
+                try {
+                    closeSession();
+                } catch (Throwable t) {
+                    // One last attempt...
+                    try {
+                        session.clientSocket.close();
+                    } catch (IOException ioe) {
+                        // Ignore, we're in deeper trouble already.
+                    } 
+                } finally {
+                    throw error;
+                }
+            }
 		}
 		if (SanityManager.DEBUG)
 			trace("Ending connection thread");