[
https://issues.apache.org/jira/browse/JCR-1597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated JCR-1597:
-----------------------------------
Attachment: JCR-1597.patch
Attaching proposed patch. This just uses ResourceException(String, Throwable)
constructor. Not sure, is this correct, please review.
> JCARepositoryHandle.login(...) methods never throw NoSuchWorkspaceException
> ---------------------------------------------------------------------------
>
> Key: JCR-1597
> URL: https://issues.apache.org/jira/browse/JCR-1597
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-jca
> Affects Versions: 1.4
> Reporter: Roman Puchkovskiy
> Attachments: JCR-1597.patch
>
>
> Call sequence:
> JCARepositoryHandle.login(Credentials, String) // (here non-existent
> workspace is specified for login)
> JCARepositoryHandle.login(JCAConnectionRequestInfo)
> ConnectionManager.allocateConnection(ManagedConnectionFactory,
> ConnectionRequestInfo)
> ...
> JCAManagedConnection.openSession(JCAConnectionRequestInfo)
> Repository.login(Credentials, String) // here
> NoSuchWorkspaceException is thrown, catched by
> JCAManagedConnection.openSession(JCAConnectionRequestInfo), _set as
> linkedException_ to ResourceException, which is thrown
> ...
> Here (in JCARepositoryHandle.login(JCAConnectionRequestInfo))
> ResourceException is caught, its _cause_ is retreived, and, if cause is
> NoSuchWorkspaceException, it's thrown, else another exception is thrown.
> Note, that when exception occures on lower level, it's wrapped in
> ResourceException using setLinkedException(), but on upper level it's
> unwrapped using getCause(). But cause is not set by anyone, it's null, so
> NoSuchWorkspaceException is never thrown here.
> Suggested fix is to use same mechanism on both ends: either change wrapping
> mechanism to exception chaining (new ResourceException(msg, cause)), or
> unwrap using ResourceException.getLinkedException().
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.