If you register an observation listener using a JCR session, you must not close that session until the listener is unregistered. This is the only exception where a long-running JCR session is even required. And you don't need to worry about refreshs and such, as in that case the JCR does all the mag...