have two getTermPathWithOrigin(..): one which assumed observer is used in a thread save manner, the other assumes observer needs locking