strange what you are doing
not sure to have clearly understood how you "call" the portlet, but quite sure it is a wrong idea...
you may isolate the feature outside the portlet : put it in some independant class, or better, in a JMX service.
the portlet call this feature when it need it
the login event also.
this feature should not need all the portlet stuff... so could be isolated in a JMX service.
hope it helps,