Index: src/org/netbeans/modules/web/jsf/wizards/JSFClinetGenerator.java =================================================================== RCS file: /cvs/web/jsf/src/org/netbeans/modules/web/jsf/wizards/JSFClinetGenerator.java,v retrieving revision 1.1.2.47 diff -u -r1.1.2.47 JSFClinetGenerator.java --- src/org/netbeans/modules/web/jsf/wizards/JSFClinetGenerator.java 26 Sep 2006 09:42:45 -0000 1.1.2.47 +++ src/org/netbeans/modules/web/jsf/wizards/JSFClinetGenerator.java 8 Dec 2006 10:48:11 -0000 @@ -988,10 +988,12 @@ String BEGIN = isInjection ? "utx.begin();" : "em.getTransaction().begin();"; String COMMIT = isInjection ? "utx.commit();" : "em.getTransaction().commit();"; String ROLLBACK = isInjection ? "utx.rollback();" : "em.getTransaction().rollback();"; + //#90031: synchronize the entity manager with jta transaction (if jta is being used, defined by isInjection) + String JOIN_TRANSACTION = inInjection ? "em.joinTransaction();\n" : ""; Method create = JMIGenerationUtil.createMethod(javaClass, "create", Modifier.PUBLIC, "String"); //NOI18N create.setBodyText("EntityManager em = getEntityManager();\n" - + "try {\n " + BEGIN + "\n em.persist(" + fieldName + ");\n" + updateRelatedInCreate.toString() + COMMIT + "\n" //NOI18N + + "try {\n " + BEGIN + "\n" + JOIN_TRANSACTION + " em.persist(" + fieldName + ");\n" + updateRelatedInCreate.toString() + COMMIT + "\n" //NOI18N + "addSuccessMessage(\"" + simpleEntityName + " was successfully created.\");\n" //NOI18N + "} catch (Exception ex) {\n try {\n addErrorMessage(ex.getLocalizedMessage());\n" + ROLLBACK + "\n } catch (Exception e) {\n addErrorMessage(e.getLocalizedMessage());\n}\n } " //NOI18N + "finally {\n em.close();\n }\n" @@ -1011,7 +1013,7 @@ Method edit = JMIGenerationUtil.createMethod(javaClass, "edit", Modifier.PUBLIC, "String"); //NOI18N edit.setBodyText("EntityManager em = getEntityManager();\n" - + "try {\n " + BEGIN + "\n" + updateRelatedInEditPre.toString() + + "try {\n " + BEGIN + "\n" + JOIN_TRANSACTION + updateRelatedInEditPre.toString() + fieldName + " = em.merge(" + fieldName + ");\n " + updateRelatedInEditPost.toString() + COMMIT + "\n" //NOI18N + "addSuccessMessage(\"" + simpleEntityName + " was successfully updated.\");\n" //NOI18N @@ -1023,7 +1025,7 @@ Method destroy = JMIGenerationUtil.createMethod(javaClass, "destroy", Modifier.PUBLIC, "String"); //NOI18N destroy.setBodyText("EntityManager em = getEntityManager();\n" - + "try {\n " + BEGIN + "\n" + entityReferenceName + " " + fieldName + " = " + getFromReqParamMethod + "();\n" + + "try {\n " + BEGIN + "\n" + JOIN_TRANSACTION + entityReferenceName + " " + fieldName + " = " + getFromReqParamMethod + "();\n" + fieldName + " = em.merge(" + fieldName + ");\n" + updateRelatedInDestroy.toString() + "em.remove(" + fieldName + ");\n " + COMMIT + "\n" //NOI18N + "addSuccessMessage(\"" + simpleEntityName + " was successfully deleted.\");\n" //NOI18N