[
https://issues.apache.org/jira/browse/AMBARI-22110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nate Cole updated AMBARI-22110:
-------------------------------
Description:
While investigating an issue with VDFs which don't contain any OS's which match
the cluster, it was observed that, even after throwing an Exception inside of a
Transaction, the entities created inside that transaction were being committed.
Eventual investigation led to a problem between Guice/AOP and our
ResourceProviders. The Guice documentations says that {{@Transactional}}
methods can only be intercepted on objects created by Guice:
https://github.com/google/guice/wiki/AOP:
{quote}
Instances must be created by Guice by an @Inject-annotated or no-argument
constructor It is not possible to use method interception on instances that
aren't constructed by Guice.
{quote}
However, some of the ResourceProviders which use {{@Transactional}} are not
constructed by Guice.
was:A handful of {{ResourceProvider}}s have transactional methods that are
not loaded by Guice, and are therefore not transactional at all.
> ResourceProviders Are Not Transactional
> ---------------------------------------
>
> Key: AMBARI-22110
> URL: https://issues.apache.org/jira/browse/AMBARI-22110
> Project: Ambari
> Issue Type: Bug
> Components: ambari-server
> Reporter: Nate Cole
> Assignee: Nate Cole
> Priority: Critical
> Fix For: 2.6.0
>
>
> While investigating an issue with VDFs which don't contain any OS's which
> match the cluster, it was observed that, even after throwing an Exception
> inside of a Transaction, the entities created inside that transaction were
> being committed.
> Eventual investigation led to a problem between Guice/AOP and our
> ResourceProviders. The Guice documentations says that {{@Transactional}}
> methods can only be intercepted on objects created by Guice:
> https://github.com/google/guice/wiki/AOP:
> {quote}
> Instances must be created by Guice by an @Inject-annotated or no-argument
> constructor It is not possible to use method interception on instances that
> aren't constructed by Guice.
> {quote}
> However, some of the ResourceProviders which use {{@Transactional}} are not
> constructed by Guice.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)