// result Result getDataResultHead(Result command, Result result, boolean isNetwork) { int fetchSize = command.getFetchSize(); result.setResultId(session.actionTimestamp); if (command.rsConcurrency == ResultConstants.CONCUR_READ_ONLY) { result.setDataResultConcurrency(ResultConstants.CONCUR_READ_ONLY); result.setDataResultHoldability(command.rsHoldability); } else { if (result.rsConcurrency == ResultConstants.CONCUR_READ_ONLY) { result.setDataResultHoldability(command.rsHoldability); // add warning for concurrency conflict } else { if (session.isAutoCommit()) { result.setDataResultConcurrency(ResultConstants.CONCUR_READ_ONLY); result.setDataResultHoldability(ResultConstants.HOLD_CURSORS_OVER_COMMIT); } else { result.setDataResultHoldability(ResultConstants.CLOSE_CURSORS_AT_COMMIT); } } } result.setDataResultScrollability(command.rsScrollability); boolean hold = false; boolean copy = false; if (result.rsConcurrency == ResultConstants.CONCUR_UPDATABLE) { hold = true; } if (isNetwork) { if (fetchSize != 0 && result.getNavigator().getSize() > fetchSize) { copy = true; hold = true; } } else { if (result.getNavigator().isDiskBased()) { hold = true; } } if (hold) { if (resultMap == null) { resultMap = new LongKeyHashMap(); } resultMap.put(result.getResultId(), result); } if (copy) { result = Result.newDataHeadResult(session, result, 0, fetchSize); } return result; }