Object result = null;
GlobalTransaction gtx = ctx.getGlobalTransaction();
TransactionWorkspace workspace = getTransactionWorkspace(gtx);
if (MethodDeclarations.isCrudMethod(meth))
{
if (tx == null || !isValid(tx))
{
throw new CacheException("Must be in a valid transaction " + m);
}
WorkspaceNode workspaceNode = getOrCreateWorkspaceNode(getFqn(args), workspace, true);
if (workspaceNode == null && m.getMethodId() == MethodDeclarations.dataGravitationCleanupMethod_id)
{
workspaceNode = getOrCreateWorkspaceNode(getBackupFqn(args), workspace, true);
}
if (workspaceNode != null)
{
// use explicit versioning
if (ctx.getOptionOverrides() != null && ctx.getOptionOverrides().getDataVersion() != null)
{
workspace.setVersioningImplicit(false);
DataVersion version = ctx.getOptionOverrides().getDataVersion();
workspaceNode.setVersion(version);
if (log.isTraceEnabled()) log.trace("Setting versioning for node " + workspaceNode.getFqn() + " to explicit");
workspaceNode.setVersioningImplicit(false);