/** * Can be called concurrently (also during executeAction()). * * Get the external access for this component. * The specific external access interface is kernel specific * and has to be casted to its corresponding incarnation. * @param listener External access is delivered via result listener. */ public IExternalAccess getExternalAccess() { if(access==null) { synchronized(this) { if(access==null) { access = createExternalAccess(); } } } return access; }