blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractTracked.java [300:346]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void untrack(final S item, final R related) {
        final T object;
        synchronized (this) {
            if (initial.remove(item)) { /*
										 * if this item is already in the list
										 * of initial references to process
										 */
                if (DEBUG) {
                    System.out.println("AbstractTracked.untrack[removed from initial]: " + item); //$NON-NLS-1$
                }
                return; /*
						 * we have removed it from the list and it will not be
						 * processed
						 */
            }

            if (adding.remove(item)) { /*
										 * if the item is in the process of
										 * being added
										 */
                if (DEBUG) {
                    System.out.println("AbstractTracked.untrack[being added]: " + item); //$NON-NLS-1$
                }
                return; /*
						 * in case the item is untracked while in the process of
						 * adding
						 */
            }
            object = tracked.remove(item); /*
											 * must remove from tracker before
											 * calling customizer callback
											 */
            if (object == null) { /* are we actually tracking the item */
                return;
            }
            modified(); /* increment modification count */
        }
        if (DEBUG) {
            System.out.println("AbstractTracked.untrack[removed]: " + item); //$NON-NLS-1$
        }
		/* Call customizer outside of synchronized region */
        customizerRemoved(item, related, object);
		/*
		 * If the customizer throws an unchecked exception, it is safe to let it
		 * propagate
		 */
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



util/src/main/java/org/apache/aries/util/tracker/hook/BundleHookBundleTracker.java [794:840]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        void untrack(final S item, final R related) {
            final T object;
            synchronized (this) {
                if (initial.remove(item)) { /*
										     * if this item is already in the list
										     * of initial references to process
										     */
                    if (DEBUG) {
                        System.out.println("AbstractTracked.untrack[removed from initial]: " + item); //$NON-NLS-1$
                    }
                    return; /*
						     * we have removed it from the list and it will not be
						     * processed
						     */
                }

                if (adding.remove(item)) { /*
										    * if the item is in the process of
										    * being added
										    */
                    if (DEBUG) {
                        System.out.println("AbstractTracked.untrack[being added]: " + item); //$NON-NLS-1$
                    }
                    return; /*
						     * in case the item is untracked while in the process of
						     * adding
						     */
                }
                object = tracked.remove(item); /*
											    * must remove from tracker before
											    * calling customizer callback
											    */
                if (object == null) { /* are we actually tracking the item */
                    return;
                }
                modified(); /* increment modification count */
            }
            if (DEBUG) {
                System.out.println("AbstractTracked.untrack[removed]: " + item); //$NON-NLS-1$
            }
            /* Call customizer outside of synchronized region */
            customizerRemoved(item, related, object);
            /*
             * If the customizer throws an unchecked exception, it is safe to let it
             * propagate
             */
        }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



