Lines 810-821
Link Here
|
810 |
return; |
810 |
return; |
811 |
} |
811 |
} |
812 |
|
812 |
|
813 |
synchronized(children) { |
|
|
814 |
if (children.get(child.getName()) == null) |
815 |
return; |
816 |
children.remove(child.getName()); |
817 |
} |
818 |
|
819 |
try { |
813 |
try { |
820 |
if (child.getState().isAvailable()) { |
814 |
if (child.getState().isAvailable()) { |
821 |
child.stop(); |
815 |
child.stop(); |
Lines 824-831
Link Here
|
824 |
log.error("ContainerBase.removeChild: stop: ", e); |
818 |
log.error("ContainerBase.removeChild: stop: ", e); |
825 |
} |
819 |
} |
826 |
|
820 |
|
827 |
fireContainerEvent(REMOVE_CHILD_EVENT, child); |
|
|
828 |
|
829 |
try { |
821 |
try { |
830 |
// child.destroy() may have already been called which would have |
822 |
// child.destroy() may have already been called which would have |
831 |
// triggered this call. If that is the case, no need to destroy the |
823 |
// triggered this call. If that is the case, no need to destroy the |
Lines 837-842
Link Here
|
837 |
log.error("ContainerBase.removeChild: destroy: ", e); |
829 |
log.error("ContainerBase.removeChild: destroy: ", e); |
838 |
} |
830 |
} |
839 |
|
831 |
|
|
|
832 |
synchronized(children) { |
833 |
if (children.get(child.getName()) == null) |
834 |
return; |
835 |
children.remove(child.getName()); |
836 |
} |
837 |
|
838 |
fireContainerEvent(REMOVE_CHILD_EVENT, child); |
840 |
} |
839 |
} |
841 |
|
840 |
|
842 |
|
841 |
|