// to do it for local work
ParameterSet parameterSets[] = new ParameterSet[request.getParamsCount()]; // TODO: Cache!
for (int i = 0; i < parameterSets.length; i++) {
ByteString paramData = request.getParams(i);
if (paramData != null && paramData.isEmpty() == false) {
final FastDeserializer fds = new FastDeserializer(paramData.asReadOnlyByteBuffer());
if (trace.val)
LOG.trace(String.format("Txn #%d paramData[%d] => %s",
txn_id, i, fds.buffer()));
try {
parameterSets[i] = fds.readObject(ParameterSet.class);
} catch (Exception ex) {
String msg = String.format("Failed to deserialize ParameterSet[%d] for txn #%d TransactionRequest", i, txn_id);
throw new ServerFaultException(msg, ex, txn_id);
}
// LOG.info("PARAMETER[" + i + "]: " + parameterSets[i]);
} else {
parameterSets[i] = ParameterSet.EMPTY;
}
} // FOR
ts.attachParameterSets(parameterSets);
// Deserialize attached VoltTable input dependencies
FastDeserializer fds = null;
VoltTable vt = null;
for (int i = 0, cnt = request.getAttachedDataCount(); i < cnt; i++) {
int input_dep_id = request.getAttachedDepId(i);
ByteString data = request.getAttachedData(i);
if (data.isEmpty()) {
String msg = String.format("%s input dependency %d is empty", ts, input_dep_id);
LOG.warn(msg + "\n" + request);
throw new ServerFaultException(msg, txn_id);
}
if (fds == null) fds = new FastDeserializer(data.asReadOnlyByteBuffer());
else fds.setBuffer(data.asReadOnlyByteBuffer());
vt = null;
try {
vt = fds.readObject(VoltTable.class);
} catch (Exception ex) {
String msg = String.format("Failed to deserialize VoltTable[%d] for txn #%d", input_dep_id, txn_id);
throw new ServerFaultException(msg, ex, txn_id);
}
assert(vt != null);