[JBoss jBPM] - problem in taskInstance.end()
by cheets
Hi All,
In my workflow, i have to save some variables before ending a task. For this i use:
| taskInstance.setVariable("var1",value);
| taskInstance.end();
| jbpmcontext.save(taskInstance);
| jbpmContext.close();
|
the problem i am facing is that as soon as taskInstance.end() is encountered, the control moves to the next node in the workflow, which is a decision node. the variable is not committed at this stage, so the decision fails.
I tried closing the jbpmcontext after setVariable(), which persists the variable. But again, as soon as taskInstance.end() is encountered, it moves to the next node, so the current task keeps shoeing END_ as null. I am confused whther this is an expected behaviour or am i doing some mistake.
the taskInstance i get as
| if (processId != null)
| {
| processInstance = jbpmContext.loadProcessInstance(processId.longValue());
| }
| if (processInstance != null)
| {
| TaskMgmtInstance tmi = processInstance.getTaskMgmtInstance();
| Collection taskInstances = tmi.getTaskInstances();
| //get all taskinstances for the selected processInstance
| for (Iterator itr = taskInstances.iterator(); itr.hasNext();)
| {
| task = (TaskInstance) itr.next();
| taskInstance = jbpmContext.getTaskInstanceForUpdate(task.getId());
| //get an updatable taskInstance.
| }
| }
|
|
thanks in advance...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4081315#4081315
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4081315
18 years, 7 months
[JBoss Seam] - entityManagerFactory resolves to null
by jjfraney
I'm using seam 1.2.1GA inside resin 3.0.24. I'm not using EJB. I am using JPA.
Here is segment of log output with the top of the stack trace to the error I am facing:
| [08:09:18.736] FINE org.jboss.seam.core.Events Processing event:org.jboss.seam.postCreate.em
| [08:20:06.868] FINE org.jboss.seam.jsf.SeamVariableResolver resolving name: broadcastEntityManagerFactory
| [08:20:06.915] FINE org.jboss.seam.contexts.Contexts found in application context: broadcastEntityManagerFactory
| [08:20:06.915] FINE org.jboss.seam.jsf.SeamVariableResolver Seam component resolved, but unwrap method returned null
| [08:20:06.925] FINE org.apache.myfaces.el.PropertyResolverImpl Exception while retrieving property; base : com.gc.web.pages.MapSubAccountsHelper1_$$_javassist_0, property : hello
| [08:20:06.925]java.lang.NullPointerException
| [08:20:06.925] at org.jboss.seam.core.ManagedPersistenceContext.initEntityManager(ManagedPersistenceContext.java:77)
| [08:20:06.925] at org.jboss.seam.core.ManagedPersistenceContext.getEntityManager(ManagedPersistenceContext.java:105)
| [08:20:06.925] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [08:20:06.925] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| [08:20:06.925] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| [08:20:06.925] at java.lang.reflect.Method.invoke(Method.java:597)
| [08:20:06.925] at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| [08:20:06.925] at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:123)
| [08:20:06.925] at org.jboss.seam.Component.callComponentMethod(Component.java:1834)
|
|
I am using eclipse to single step through the seam code. I use 'evaluate java expression' feature.
org.jboss.seam.coreExpressions.getValue is the lowest my
| public Object getValue()
| {
| if ( isFacesContext() )
| {
| return getFacesValueBinding().getValue( FacesContext.getCurrentInstance() );
| }
| else
| {
| return getValueExpression().getValue(EL_CONTEXT);
| }
| }
|
Here are eclipse' evaluations of some of the expressions:
| getFacesValueBinding().getValue( FacesContext.getCurrentInstance() )
| null
|
| getFacesValueBinding()
| (org.apache.myfaces.el.ValueBindingImpl) #{broadcastEntityManagerFactory}
|
OK, so I go abit further in my debug session. I get down to:
| SeamVariableResolver.resolveVariable(FacesContext, String) line: 57
| LastVariableResolverInChain.resolveVariable(FacesContext, String) line: 42
| ValueBindingImpl$ELVariableResolver.resolveVariable(String) line: 574
| NamedValue.evaluate(VariableResolver, FunctionMapper, Logger) line: 124
| ValueBindingImpl.getValue(FacesContext) line: 383
| Expressions$1.getValue() line: 69
| ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding() line: 169
|
The call to Component.forName() returns non-null:
| component Component (id=9135)
| beanClass Class<T> (org.jboss.seam.core.EntityManagerFactory) (id=2554)
| ...
|
The logic for this case is for the resolver to return null?
| 57 if( component == null)
| 58 {
| ...
| 70 }
| 71 else
| 72 {
| 72 log.debug("Seam component resolved, but unwrap method returned null");
| 73 return null;
| 74 }
|
|
Here is my components.xml (seam 1.2.1)
| <core:entity-manager-factory name="broadcastEntityManagerFactory"
| persistence-unit-name="broadcast" />
|
| <core:managed-persistence-context name="em" auto-create="true"
| entity-manager-factory="#{broadcastEntityManagerFactory}"/>
|
Here is log output showing the seam groks the components.xml file:
| [08:08:09.036] INFO org.jboss.seam.init.Initialization Installing components...
| [08:08:09.069] INFO org.jboss.seam.Component Component: broadcastEntityManagerFactory, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EntityManagerFactory
| Sep 5, 2007 8:08:09 AM org.jboss.seam.Component <init>
| INFO: Component: broadcastEntityManagerFactory, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EntityManagerFactory
| [08:08:09.070] INFO org.jboss.seam.Component Component: broadcastEntityManagerFactory, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EntityManagerFactory
| [08:08:09.077] FINE org.jboss.seam.Component broadcastEntityManagerFactory.persistenceUnitName=broadcast
| [08:08:09.079] FINE org.jboss.seam.Component seam component not found: org.jboss.seam.core.events
| [08:08:09.080] FINE org.jboss.seam.Component seam component not found: org.jboss.seam.core.events
| [08:08:09.082] INFO org.jboss.seam.Component Component: em, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.ManagedPersistenceContext
| Sep 5, 2007 8:08:09 AM org.jboss.seam.Component <init>
| INFO: Component: em, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.ManagedPersistenceContext
| [08:08:09.082] INFO org.jboss.seam.Component Component: em, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.ManagedPersistenceContext
| [08:08:09.291] FINE org.jboss.seam.Component em.entityManagerFactory=#{broadcastEntityManagerFactory}
| [08:08:09.294] FINE org.jboss.seam.Component seam component not found: org.jboss.seam.core.events
| [08:08:09.294] FINE org.jboss.seam.Component seam component not found: org.jboss.seam.core.events
|
|
And, of course I have a persistence unit named 'broadcast', which I would post but I don't think it is relevant.
Any comment or recommendations?
Thanks,
John
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4081312#4081312
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4081312
18 years, 7 months