public void dispose() { synchronized ( this.registeredResources ) { //all kbase's ksessions must be disposed if ( this.kbase != null ) { Collection<StatefulKnowledgeSession> statefulSessions = this.kbase.getStatefulKnowledgeSessions(); if ( statefulSessions != null && !statefulSessions.isEmpty()) { String message = "The kbase still contains " + statefulSessions.size() + " stateful sessions. You must dispose them first."; this.listener.warning( message ); throw new IllegalStateException( message ); } } //stop changeSet Notification Detector this.monitorResourceChangeEvents( false ); } }