/** * Reset flags when exiting thread. * @param cl The previous context class loader. */ protected void resetExecutionState(ClassLoader cl) { // Reset execution state. IComponentIdentifier.LOCAL.set(null); IInternalExecutionFeature.LOCAL.set(null); // Must reset service call settings when thread retreats from components CallAccess.resetCurrentInvocation(); CallAccess.resetNextInvocation(); Thread.currentThread().setContextClassLoader(cl); this.componentthread = null; executing = false; ISuspendable.SUSPENDABLE.set(null); }
/** * Get the sid. * @return the sid. */ public IServiceIdentifier getServiceIdentifier() { if(sid==null) { // Hack!!! Preserve call context after getServiceIdentifier() ServiceCall sc = CallAccess.getNextInvocation(); CallAccess.resetNextInvocation(); sid = service instanceof ServiceInfo? ((ServiceInfo)service).getManagementService().getServiceIdentifier(): ((IService)service).getServiceIdentifier(); CallAccess.setNextInvocation(sc); } return sid; }
/** * Get the sid. * @return the sid. */ public IServiceIdentifier getServiceIdentifier() { if(sid==null) { // Hack!!! Preserve call context after getServiceIdentifier() ServiceCall sc = CallAccess.getNextInvocation(); CallAccess.resetNextInvocation(); sid = service instanceof ServiceInfo? ((ServiceInfo)service).getManagementService().getServiceIdentifier(): ((IService)service).getServiceIdentifier(); CallAccess.setNextInvocation(sc); } return sid; }
CallAccess.resetNextInvocation(); Thread.currentThread().setContextClassLoader(cl); this.componentthread = null;
CallAccess.resetNextInvocation(); // next is null CallAccess.resetNextInvocation(); // next is null
CallAccess.resetNextInvocation(); // next is null CallAccess.resetNextInvocation(); // next is null
final Map<String, Object> nonfunc = nf; CallAccess.resetNextInvocation();