Author: shawkins
Date: 2011-10-04 23:14:18 -0400 (Tue, 04 Oct 2011)
New Revision: 3528
Modified:
branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTable.java
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
Log:
TEIID-1768 fix for invalid locking
Modified: branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTable.java
===================================================================
--- branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTable.java 2011-10-04
19:38:57 UTC (rev 3527)
+++ branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTable.java 2011-10-05
03:14:18 UTC (rev 3528)
@@ -210,7 +210,6 @@
int process() throws ExpressionEvaluationException, TeiidComponentException,
TeiidProcessingException {
int reserved = reserveBuffers();
- boolean held = lock.writeLock().isHeldByCurrentThread();
lock.writeLock().lock();
boolean success = false;
try {
@@ -240,9 +239,7 @@
} catch (TeiidException e) {
LogManager.logError(LogConstants.CTX_DQP, e, e.getMessage());
} finally {
- if (!held) {
- lock.writeLock().unlock();
- }
+ lock.writeLock().unlock();
close();
}
}
Modified:
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java
===================================================================
---
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java 2011-10-04
19:38:57 UTC (rev 3527)
+++
branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestTempTables.java 2011-10-05
03:14:18 UTC (rev 3528)
@@ -140,6 +140,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 {
Show replies by date