[jboss-jira] [JBoss JIRA] (WFLY-6383) Entities using Extended PersistentContext are not managed

Rakesh K. Cherukuri (JIRA) issues at jboss.org
Wed Mar 16 12:49:00 EDT 2016


     [ https://issues.jboss.org/browse/WFLY-6383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rakesh K. Cherukuri updated WFLY-6383:
--------------------------------------
    Description: 
Entities using Extended PersistentContext are not managed in a Stateful bean.

Bean Class:
-----------------
bq. @Stateful
bq. @SessionScoped
bq. @Local(CdiStatefulEmployeeService.class)
bq. public class CdiStatefulEmployeeBean implements CdiStatefulEmployeeService {
bq. 
bq.   @PersistenceContext(name = "employees", type = PersistenceContextType.EXTENDED)
bq.   EntityManager extendedEm;
bq. 
bq.   private Employee cached;
bq.   
bq.   @Override
bq.   public String service() {
bq.     cached = extendedEm.find(Employee.class, 499983);
bq.     return cached.getFirstName();
bq.   }
bq. 
bq.   @Override
bq.   public String updateEntity() {
bq.     cached.setFirstName("Uri2");
bq.     return cached.getFirstName();
bq.   }
bq. }

Client Servlet that basically invokes both service calls of the bean:
---------------------------------------------------------------------------------------
{{@WebServlet("/atInjectedStatefulEjbClient")
public class AtInjectedStatefulEjbClient extends HttpServlet {

  @Inject
  CdiStatefulEmployeeService statefulBean;

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    HttpSession session = req.getSession(true);
    resp.setContentType("text/plain");

    PrintWriter pw = resp.getWriter();

    pw.println(statefulBean.service());
    pw.println();
    pw.println(statefulBean.updateEntity());
    
    session.invalidate();
    pw.flush();
    pw.close();
  }
}}}

  was:
Entities using Extended PersistentContext are not managed in a Stateful bean.

Bean Class:
-----------------
{{@Stateful
@SessionScoped
@Local(CdiStatefulEmployeeService.class)
public class CdiStatefulEmployeeBean implements CdiStatefulEmployeeService {

  @PersistenceContext(name = "employees", type = PersistenceContextType.EXTENDED)
  EntityManager extendedEm;

  private Employee cached;
  
  @Override
  public String service() {
    cached = extendedEm.find(Employee.class, 499983);
    return cached.getFirstName();
  }

  @Override
  public String updateEntity() {
    cached.setFirstName("Uri2");
    return cached.getFirstName();
  }
}}}

Client Servlet that basically invokes both service calls of the bean:
---------------------------------------------------------------------------------------
{{@WebServlet("/atInjectedStatefulEjbClient")
public class AtInjectedStatefulEjbClient extends HttpServlet {

  @Inject
  CdiStatefulEmployeeService statefulBean;

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    HttpSession session = req.getSession(true);
    resp.setContentType("text/plain");

    PrintWriter pw = resp.getWriter();

    pw.println(statefulBean.service());
    pw.println();
    pw.println(statefulBean.updateEntity());
    
    session.invalidate();
    pw.flush();
    pw.close();
  }
}}}



> Entities using Extended PersistentContext are not managed
> ---------------------------------------------------------
>
>                 Key: WFLY-6383
>                 URL: https://issues.jboss.org/browse/WFLY-6383
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 10.0.0.Final
>         Environment: WildFLy 10.0.0.Final
> Mac
>            Reporter: Rakesh K. Cherukuri
>              Labels: Extended, JPA, Persistence, PersistenceContext
>
> Entities using Extended PersistentContext are not managed in a Stateful bean.
> Bean Class:
> -----------------
> bq. @Stateful
> bq. @SessionScoped
> bq. @Local(CdiStatefulEmployeeService.class)
> bq. public class CdiStatefulEmployeeBean implements CdiStatefulEmployeeService {
> bq. 
> bq.   @PersistenceContext(name = "employees", type = PersistenceContextType.EXTENDED)
> bq.   EntityManager extendedEm;
> bq. 
> bq.   private Employee cached;
> bq.   
> bq.   @Override
> bq.   public String service() {
> bq.     cached = extendedEm.find(Employee.class, 499983);
> bq.     return cached.getFirstName();
> bq.   }
> bq. 
> bq.   @Override
> bq.   public String updateEntity() {
> bq.     cached.setFirstName("Uri2");
> bq.     return cached.getFirstName();
> bq.   }
> bq. }
> Client Servlet that basically invokes both service calls of the bean:
> ---------------------------------------------------------------------------------------
> {{@WebServlet("/atInjectedStatefulEjbClient")
> public class AtInjectedStatefulEjbClient extends HttpServlet {
>   @Inject
>   CdiStatefulEmployeeService statefulBean;
>   @Override
>   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
>     HttpSession session = req.getSession(true);
>     resp.setContentType("text/plain");
>     PrintWriter pw = resp.getWriter();
>     pw.println(statefulBean.service());
>     pw.println();
>     pw.println(statefulBean.updateEntity());
>     
>     session.invalidate();
>     pw.flush();
>     pw.close();
>   }
> }}}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list