use of com.arjuna.ArjunaOTS.ArjunaSubtranAwareResource in project narayana by jbosstm.
the class ArjunaTransactionImple method createOTSRecord.
protected final AbstractRecord createOTSRecord(boolean propagate, Resource resource, Coordinator coord, Uid recCoordUid) {
if (jtsLogger.logger.isTraceEnabled()) {
jtsLogger.logger.trace("ArjunaTransactionImple::createOTSRecord for " + get_uid());
}
/*
* If the resource is an ArjunaOTS.OTSAbstractRecord or an
* ArjunaOTS.ArjunaSubtranAwareResource then we can do better record
* manipulation, and proper nested actions.
*
* Based on the type of resource we create the right abstract record to
* handle it, rather than a single abstract record which switches
* protocols internally.
*/
ArjunaSubtranAwareResource absRec = null;
AbstractRecord corbaRec = null;
if (resource != null) {
try {
absRec = com.arjuna.ArjunaOTS.ArjunaSubtranAwareResourceHelper.narrow(resource);
if (absRec == null)
throw new BAD_PARAM(0, CompletionStatus.COMPLETED_NO);
} catch (Exception e) {
// can't be an ArjunaOTS.ArjunaSubtranAwareResource
absRec = null;
}
}
if (absRec == null) {
corbaRec = new ResourceRecord(propagate, resource, coord, recCoordUid, this);
} else {
Uid u = null;
OTSAbstractRecord otsRec;
try {
otsRec = com.arjuna.ArjunaOTS.OTSAbstractRecordHelper.narrow(absRec);
if (otsRec == null)
throw new BAD_PARAM(0, CompletionStatus.COMPLETED_NO);
} catch (Exception e) {
otsRec = null;
}
if (otsRec != null) {
try {
u = new Uid(otsRec.uid());
} catch (Exception e) {
u = null;
}
if (u == null) {
jtsLogger.i18NLogger.warn_orbspecific_coordinator_uidfail("ArjunaTransactionImple.createOTSRecord");
}
}
if (u == null)
u = new Uid();
corbaRec = new ExtendedResourceRecord(propagate, u, absRec, coord, recCoordUid, this);
otsRec = null;
absRec = null;
u = null;
}
return corbaRec;
}
use of com.arjuna.ArjunaOTS.ArjunaSubtranAwareResource in project narayana by jbosstm.
the class ExtendedResourceRecord method otsRecord.
private final OTSAbstractRecord otsRecord(AbstractRecord absRec) {
/*
* Is the abstract record an ExtendedResourceRecord ?
*/
OTSAbstractRecord resHandle = null;
if ((absRec != null) && (absRec instanceof ExtendedResourceRecord)) {
try {
ExtendedResourceRecord theRecord = (ExtendedResourceRecord) absRec;
ArjunaSubtranAwareResource theResource = theRecord.resourceHandle();
resHandle = com.arjuna.ArjunaOTS.OTSAbstractRecordHelper.unchecked_narrow(theResource);
theResource = null;
} catch (Exception e) {
jtsLogger.i18NLogger.warn_resources_errgenerr("ExtendedResourceRecord.otsRecord", e);
}
}
return resHandle;
}
Aggregations