db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mi...@apache.org
Subject svn commit: r1475873 - in /db/derby/code/branches/10.10: ./ java/engine/org/apache/derby/impl/store/raw/xact/Xact.java java/engine/org/apache/derby/loc/messages.xml java/shared/org/apache/derby/shared/common/reference/SQLState.java
Date Thu, 25 Apr 2013 17:50:20 GMT
Author: mikem
Date: Thu Apr 25 17:50:19 2013
New Revision: 1475873

URL: http://svn.apache.org/r1475873
Log:
DERBY-4729 add more information to the XACT_PROTOCOL_VIOLATION returned from store.

backported change #1471079 from trunk to 10.10 branch.

When this error is reported it is often hard to reproduce, so adding
printing of internal state of the Transaction when it is hit.  Hopefully
this help in understanding what is going on when the error is hit.


Modified:
    db/derby/code/branches/10.10/   (props changed)
    db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java
    db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml
    db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java

Propchange: db/derby/code/branches/10.10/
------------------------------------------------------------------------------
  Merged /db/derby/code/trunk:r1471079

Modified: db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java?rev=1475873&r1=1475872&r2=1475873&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java
(original)
+++ db/derby/code/branches/10.10/java/engine/org/apache/derby/impl/store/raw/xact/Xact.java
Thu Apr 25 17:50:19 2013
@@ -757,7 +757,8 @@ public class Xact extends RawTransaction
 		if (state == CLOSED)
         {
 			throw StandardException.newException(
-                    SQLState.XACT_PROTOCOL_VIOLATION);
+                    SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                    toInternalDetailString());
         }
 
 		if (SanityManager.DEBUG)
@@ -929,7 +930,8 @@ public class Xact extends RawTransaction
 				if (!sanityCheck_xaclosed)
                 {
 					throw StandardException.newException(
-                            SQLState.XACT_PROTOCOL_VIOLATION);
+                                    SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                                    toInternalDetailString());
                 }
 			}
 
@@ -1041,7 +1043,8 @@ public class Xact extends RawTransaction
 		if (state == CLOSED)
         {
 			throw StandardException.newException(
-                    SQLState.XACT_PROTOCOL_VIOLATION);
+                                    SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                                    toInternalDetailString());
         }
 
         // Should only be called during recovery on global transactions, 
@@ -1761,7 +1764,8 @@ public class Xact extends RawTransaction
         if (readOnly)
         {
             throw StandardException.newException(
-                SQLState.XACT_PROTOCOL_VIOLATION);
+                                    SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                                    toInternalDetailString());
         }
 
 		state = UPDATE;
@@ -1821,7 +1825,8 @@ public class Xact extends RawTransaction
         {
             // This is where we catch attempted activity on a prepared xact.
 			throw StandardException.newException(
-                    SQLState.XACT_PROTOCOL_VIOLATION);
+                                SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                                toInternalDetailString());
         }
 
 		if (SanityManager.DEBUG)
@@ -1880,7 +1885,8 @@ public class Xact extends RawTransaction
 		if (state == PREPARED || state == CLOSED)
         {
 			throw StandardException.newException(
-                    SQLState.XACT_PROTOCOL_VIOLATION);
+                    SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                    toInternalDetailString());
         }
 
 		if (SanityManager.DEBUG)
@@ -2575,7 +2581,8 @@ public class Xact extends RawTransaction
             if (state == PREPARED)
             {
                 throw StandardException.newException(
-                        SQLState.XACT_PROTOCOL_VIOLATION);
+                        SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                        toInternalDetailString());
             }
 
             prepareCommit(COMMIT_SYNC);
@@ -2587,7 +2594,8 @@ public class Xact extends RawTransaction
             if (state != PREPARED)
             {
                 throw StandardException.newException(
-                        SQLState.XACT_PROTOCOL_VIOLATION);
+                        SQLState.XACT_PROTOCOL_VIOLATION_DETAILED, 
+                        toInternalDetailString());
             }
 
             prepareCommit(COMMIT_SYNC);
@@ -2695,6 +2703,32 @@ public class Xact extends RawTransaction
         }
 	}
 
+    public String toInternalDetailString()
+    {
+
+	    return (
+            "savedEndStatus = "            + savedEndStatus         + "\n" +
+            "needSync = "                  + needSync               + "\n" +
+            "justCreated = "               + justCreated            + "\n" +
+            "myGlobalId = "                + myGlobalId             + "\n" +
+            "myId = "                      + myId                   + "\n" +
+            "state = "                     + state                  + "\n" +
+            "inComplete = "                + inComplete             + "\n" +
+            "seenUpdates = "               + seenUpdates            + "\n" +
+            "inPostCommitProcessing = "    + inPostCommitProcessing + "\n" +
+            "logStart = "                  + logStart               + "\n" +
+            "logLast = "                   + logLast                + "\n" +
+            "recoveryTransaction = "       + recoveryTransaction    + "\n" +
+            "postCompleteMode = "          + postCompleteMode       + "\n" +
+            "sanityCheck_xaclosed = "      + sanityCheck_xaclosed   + "\n" +
+            "transName = "                 + transName              + "\n" +
+            "readOnly = "                  + readOnly               + "\n" +
+            "flush_log_on_xact_end = "     + flush_log_on_xact_end  + "\n" +
+            "backupBlocked = "             + backupBlocked          + "\n" +
+            "dontWaitForLocks = "          + dontWaitForLocks       + "\n");
+    }
+
+
 	
 	/**
 	 * Get string id of the transaction that would be when the Transaction

Modified: db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml?rev=1475873&r1=1475872&r2=1475873&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml (original)
+++ db/derby/code/branches/10.10/java/engine/org/apache/derby/loc/messages.xml Thu Apr 25
17:50:19 2013
@@ -1106,6 +1106,12 @@ Guide.
                 <text>Operation is not supported in an internal transaction.</text>
             </msg>
 
+            <msg>
+                <name>40XT8</name>
+                <text>An internal error was identified by RawStore module. Internal
state detail from the transaction is as follows: {0}</text>
+                <arg>internalTransactionState</arg>
+            </msg>
+
         </family>
 
 

Modified: db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java?rev=1475873&r1=1475872&r2=1475873&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java
(original)
+++ db/derby/code/branches/10.10/java/shared/org/apache/derby/shared/common/reference/SQLState.java
Thu Apr 25 17:50:19 2013
@@ -453,6 +453,7 @@ public interface SQLState {
 	String XACT_INTERNAL_TRANSACTION_EXCEPTION                  = "40XT5";
 	String XACT_CANNOT_ACTIVATE_TRANSACTION                     = "40XT6";
 	String XACT_NOT_SUPPORTED_IN_INTERNAL_XACT                  = "40XT7";
+	String XACT_PROTOCOL_VIOLATION_DETAILED                     = "40XT8";
 
 	/*
 	** RawStore - Transactions.Basic system exceptions



Mime
View raw message