public void unregister(QName pid) throws BpelEngineException { if (__log.isTraceEnabled()) __log.trace("unregister: " + pid); try { ODEProcess p = _registeredProcesses.remove(pid); if (p == null) return; // TODO Looks like there are some possible bugs here, if a new version of a process gets // deployed, the service will be removed. p.deactivate(); // Remove the process from any services that might reference it. // However, don't remove the service itself from the map. for (List<ODEProcess> processes : _serviceMap.values()) { __log.debug( "removing process " + pid + "; handle " + p + "; exists " + processes.contains(p)); processes.remove(p); } __log.info(__msgs.msgProcessUnregistered(pid)); } catch (Exception ex) { __log.error(__msgs.msgProcessUnregisterFailed(pid), ex); throw new BpelEngineException(ex); } }
public void unregister(QName pid) throws BpelEngineException { if (__log.isTraceEnabled()) __log.trace("unregister: " + pid); try { _mngmtLock.writeLock().lockInterruptibly(); } catch (InterruptedException ie) { __log.debug("unregister() interrupted.", ie); throw new BpelEngineException(__msgs.msgOperationInterrupted()); } try { BpelProcess p; if (_engine != null) { p = _engine.unregisterProcess(pid); if (p != null) { _registeredProcesses.remove(p); XslTransformHandler.getInstance().clearXSLSheets(p.getProcessType()); __log.info(__msgs.msgProcessUnregistered(pid)); } } } catch (Exception ex) { __log.error(__msgs.msgProcessUnregisterFailed(pid), ex); throw new BpelEngineException(ex); } finally { _mngmtLock.writeLock().unlock(); } }