[teiid-commits] teiid SVN: r3530 - in trunk/engine/src: test/java/org/teiid/query/processor and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Wed Oct 5 12:05:39 EDT 2011
Author: shawkins
Date: 2011-10-05 12:05:38 -0400 (Wed, 05 Oct 2011)
New Revision: 3530
Modified:
trunk/engine/src/main/java/org/teiid/query/tempdata/TempTable.java
trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
Log:
TEIID-1768 fix for invalid locking
Modified: trunk/engine/src/main/java/org/teiid/query/tempdata/TempTable.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/tempdata/TempTable.java 2011-10-05 15:32:08 UTC (rev 3529)
+++ trunk/engine/src/main/java/org/teiid/query/tempdata/TempTable.java 2011-10-05 16:05:38 UTC (rev 3530)
@@ -230,7 +230,6 @@
int process() throws ExpressionEvaluationException, TeiidComponentException, TeiidProcessingException {
int reserved = reserveBuffers();
- boolean held = lock.writeLock().isHeldByCurrentThread();
lock.writeLock().lock();
boolean success = false;
try {
@@ -265,9 +264,7 @@
}
} finally {
bm.releaseBuffers(reserved);
- if (!held) {
- lock.writeLock().unlock();
- }
+ lock.writeLock().unlock();
close();
}
}
Modified: trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java 2011-10-05 15:32:08 UTC (rev 3529)
+++ trunk/engine/src/test/java/org/teiid/query/processor/TestTempTables.java 2011-10-05 16:05:38 UTC (rev 3530)
@@ -277,6 +277,19 @@
}
//should revert back to original
execute("select count(*) from x", new List[] {Arrays.asList(2)}); //$NON-NLS-1$
+
+ Thread t = new Thread() {
+ public void run() {
+ try {
+ execute("select count(e1) from x", new List[] {Arrays.asList(2)});
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ };
+ t.start();
+ t.join(2000);
+ assertFalse(t.isAlive());
}
@Test public void testAtomicDelete() throws Exception {
More information about the teiid-commits
mailing list