What is the difference between Session.getDefaultInstance(props, authenticator)
and getInstance(props, authenticator)
? In general, when will you choose one over the other?
I also read Java doc on getDefaultInstance(props, authenticator), but still couldn't make out the difference distinctly/clearly.
UPDATE: Actual reason that triggered to ask this question is: We've used Session.getDefaultInstance()
method in some places within our web-based application. Sometimes, it throws java.lang.SecurityException: Access to default session denied
. On quick googling, it suggested to use Session.getInstance()
method instead. Hence, when would one choose one over the other?
If you read the documentation, you will see that
getDefaultInstance Get the default Session object. If a default has not yet been setup, a new Session object is created and installed as the default.
Therefore, if one does not already exist, it call getInstance()
getInstance Get a new Session object.
So, a new session object is created, regardless of whether one already exists.