Author: rareddy
Date: 2009-09-11 14:15:56 -0400 (Fri, 11 Sep 2009)
New Revision: 1322
Modified:
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
Log:
TEIID-826: This error occurs because teiid allows asynchronous closes. Check to make sure
the request is still active before closing the lob stream. Closing of the request
implicitly closes any lob streams. So, there is no reason for throwing an exception as
this timing issue between the request closing before the lob stream closing.
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2009-09-11
17:43:30 UTC (rev 1321)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2009-09-11
18:15:56 UTC (rev 1322)
@@ -327,11 +327,11 @@
LogManager.logDetail(LogConstants.CTX_DQP, "Request to close the Lob
stream with Stream id="+streamId+" instance id="+lobRequestId);
//$NON-NLS-1$//$NON-NLS-2$
}
DQPWorkContext workContext = DQPWorkContext.getWorkContext();
- RequestWorkItem workItem =
getRequestWorkItem(workContext.getRequestID(requestId));
- workItem.removeLobStream(lobRequestId);
- ResultsFuture<Void> resultsFuture = new ResultsFuture<Void>();
- resultsFuture.getResultsReceiver().receiveResults(null);
- return resultsFuture;
+ RequestWorkItem workItem = safeGetWorkItem(workContext.getRequestID(requestId));
+ if (workItem != null) {
+ workItem.removeLobStream(lobRequestId);
+ }
+ return null;
}
public ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId,
Show replies by date