LinkFrame linkFrame) {
super(self, scopeFrame, linkFrame);
}
public final void run() {
final ExtensionContext context = new ExtensionContextImpl(_self, _scopeFrame, getBpelRuntimeContext());
final OExtensionActivity oea = (OExtensionActivity)_self.o;
try {
ExtensionOperation ea = getBpelRuntimeContext().createExtensionActivityImplementation(oea.extensionName);
if (ea == null) {
for (OProcess.OExtension oe : oea.getOwner().mustUnderstandExtensions) {
if (oea.extensionName.getNamespaceURI().equals(oe.namespaceURI)) {
__log.warn("Lookup of extension activity " + oea.extensionName + " failed.");
throw new FaultException(ExtensibilityQNames.UNKNOWN_EA_FAULT_NAME, "Lookup of extension activity "
+ oea.extensionName + " failed. No implementation found.");
}
}
// act like <empty> - do nothing
context.complete(_self.parent.export());
return;
}
if (ea instanceof AbstractLongRunningExtensionOperation) {
AbstractLongRunningExtensionOperation longEa = (AbstractLongRunningExtensionOperation)ea;
longEa.setExtensionContext(context);
longEa.setCid(_self.parent.export());
longEa.setElement(oea.nestedElement.getElement());
instance((BpelJacobRunnable)ea);
} else {
ea.run(context, _self.parent.export(), oea.nestedElement.getElement());
}
} catch (FaultException fault) {
__log.error(fault);
context.completeWithFault(_self.parent.export(), fault);
}
}