aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARIES-1885) JpaInterceptor does not properly end coordination in case of Exception
Date Wed, 30 Jan 2019 11:55:00 GMT

    [ https://issues.apache.org/jira/browse/ARIES-1885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16756017#comment-16756017
] 

ASF subversion and git services commented on ARIES-1885:
--------------------------------------------------------

Commit a5145cd8163d389cebe0bf105f9658165069d411 in aries-jpa's branch refs/heads/master from
Christian Schneider
[ https://gitbox.apache.org/repos/asf?p=aries-jpa.git;h=a5145cd ]

Merge pull request #6 from nicolas-dutertry/ARIES-1885

[ARIES-1885] End coordination in case of exception in JpaInterceptor

> JpaInterceptor does not properly end coordination in case of Exception
> ----------------------------------------------------------------------
>
>                 Key: ARIES-1885
>                 URL: https://issues.apache.org/jira/browse/ARIES-1885
>             Project: Aries
>          Issue Type: Bug
>          Components: JPA
>    Affects Versions: jpa-2.7.1
>            Reporter: Nicolas Dutertry
>            Assignee: Christian Schneider
>            Priority: Major
>             Fix For: jpa-2.7.2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> In class JpaInterceptor the method postCallWithException calls Coordination.fail() but
not Coordination.end():
> {code:java}
> @Override
> public void postCallWithException(ComponentMetadata cm, Method m, Throwable ex, Object
preCallToken) {
>     LOG.debug("PostCallWithException for bean {}, method {}", cm.getId(), m.getName(),
ex);
>     if (preCallToken != null) {
>         ((Coordination)preCallToken).fail(ex);
>     }
> }
> {code}
>  
> However, the javadoc of Coordination.fail() states:
> {code:none}
> If this Coordination has been {@link #push() pushed} onto a thread local Coordination
stack, this Coordination is not removed from the stack. The creator of this Coordination must
still call {@link #end()} on this Coordination to cause it to be removed from the thread local
Coordination stack.
> {code}
> This is causing issues for subsequent calls to jpa service because the coordination is
not removed from the stack.
> The method postCallWithException should be implemented like this:
> {code:java}
> @Override
> public void postCallWithException(ComponentMetadata cm, Method m, Throwable ex, Object
preCallToken) {
>     LOG.debug("PostCallWithException for bean {}, method {}", cm.getId(), m.getName(),
ex);
>     if (preCallToken != null) {
>         Coordination coordination = (Coordination)preCallToken;
>         coordination.fail(ex);
>         coordination.end();
>     }
> }
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message