protected void processNew() throws TeiidProcessingException, TeiidComponentException {
SessionAwareCache<CachedResults> rsCache = dqpCore.getRsCache();
boolean cachable = false;
CacheID cacheId = null;
boolean canUseCached = (requestMsg.useResultSetCache() ||
QueryParser.getQueryParser().parseCacheHint(requestMsg.getCommandString()) != null);
if (rsCache != null) {
if (!canUseCached) {
LogManager.logDetail(LogConstants.CTX_DQP, requestID, "No cache directive"); //$NON-NLS-1$
} else {
ParseInfo pi = Request.createParseInfo(requestMsg);
cacheId = new CacheID(this.dqpWorkContext, pi, requestMsg.getCommandString());
cachable = cacheId.setParameters(requestMsg.getParameterValues());
if (cachable) {
CachedResults cr = rsCache.get(cacheId);
if (cr != null) {
this.resultsBuffer = cr.getResults();
this.analysisRecord = cr.getAnalysisRecord();