Hi Ronald,

"kukeltje" wrote : 
  | hmmm... I read your post and do not see where jBPM is involved in a way 
that it is causing this problem. Everything you describe is JSF, the only thing 
is that you put selectItems in a variable, but that is just like you would do 
in in a bean. 
  | 

I am pretty sure that the problem is caused by the jbpm persistence layer, see 
below. JSF just compares by instanceof, that is a standard procedure and should 
be fine anyway.

anonymous wrote : 
  | Yet, I do not disagree that a nicer solution would be 'handy' and seam 
provides parts of that for you. what you encounter now is in the grey area of 
the webconsole. What is it intended for? Production systems? well, the 
management part should be. Is it intended for end-users? No currently not. So 
some things are not in there and personally I use the storage of variables only 
in the RAD/Prototype part of a project. For productionsystems we have a 
separate domain model and use a separate database for that (with separate ui) 
so the list of selectitems comes from there and not jBPM. The selected value 
goes into jBPM.
  | 

Thanks a lot, I haven't seen that so clear so far. I should reconsider my 
approach here.

anonymous wrote : 
  | And yes, I will investigate since it would indeed be nice if the webconsole 
supported this out of the box in a fairly easy way. Care to help and build a 
nice more complex example of a ui with this in there?
  | 

Provide an example usage  of how to feed task forms? Yes, I can do that.

First I would like to show that this problem is most probably  JSF-unrelated:
The following process definition runs fine when using it with a junit test and 
_without_ persistence. All instanceof comparisons return true.

  | <?xml version="1.0" encoding="UTF-8"?>
  | <process-definition 
  |       xmlns="urn:jbpm.org:jpdl-3.2"
  |       name="A_SelectItemsTest">
  |        <start-state name="start">
  |           <transition name="to_state" to="first">
  |           </transition>
  |        </start-state>
  |        <state name="first">
  |                   <event type="node-enter">
  |                   <script>
  |                     List test=new LinkedList();
  |                     javax.faces.model.SelectItem si=new  
javax.faces.model.SelectItem("hallo","test");
  |                     test.add(si);
  |                     
executionContext.getContextInstance().setVariable("selectitems", test);
  |                     System.out.println("first.node-enter: directly after 
setting variable: instanceof selectitem:"+(test.get(0) instanceof 
javax.faces.model.SelectItem));
  |                     System.out.println("item "+test.get(0)+" is 
"+test.get(0).getClass().getName());
  |                     
  |              </script>
  |              </event>
  |              <event type="node-leave">
  |              <script>
  |                     List 
l1=executionContext.getContextInstance().getVariable("selectitems");
  |                     System.out.println("first.node-leave: instanceof 
selectitem:"+(l1.get(0) instanceof javax.faces.model.SelectItem));
  |                     System.out.println("item "+l1.get(0)+" is 
"+l1.get(0).getClass().getName());
  |              </script>
  |              </event>
  |           <transition name="to_second" to="second">
  |           </transition>
  |        </state>
  |        <state name="second">
  |                   <event type="node-enter">
  |                   <script>
  |                     List 
l2=executionContext.getContextInstance().getVariable("selectitems");
  |                     System.out.println("second.node-enter: instanceof 
selectitem:"+(l2.get(0) instanceof javax.faces.model.SelectItem));
  |                     System.out.println("item "+l2.get(0)+" is 
"+l2.get(0).getClass().getName());
  |              </script>
  |              </event>
  |           <transition name="to_end" to="end">
  |           </transition>
  |        </state>
  |        <end-state name="end"></end-state>
  |     </process-definition>

But...when deploying it to jbpm and running it in the console - without the use 
of any jsf-task-forms!!! - the first instanceof-comparison returns true, but 
the second and third do not:

  | 16:08:41,752 INFO  [STDOUT] first.node-enter: directly after setting 
variable: instanceof selectitem:true
  | 16:08:41,770 INFO  [STDOUT] item [EMAIL PROTECTED] is 
javax.faces.model.SelectItem
  | 
  | 16:09:29,251 INFO  [STDOUT] first.node-leave: instanceof selectitem:false
  | 16:09:29,253 INFO  [STDOUT] item [EMAIL PROTECTED] is 
javax.faces.model.SelectItem
  | 
  | 16:09:29,315 INFO  [STDOUT] second.node-enter: instanceof selectitem:false
  | 16:09:29,317 INFO  [STDOUT] item [EMAIL PROTECTED] is 
javax.faces.model.SelectItem
  | 

Again...I am neither an jbpm nor an hibernate expert, so I cannot say what is 
going wrong here.  But the problem only occurs if the process variable is 
persisted. 
Maybe all the people  in this forum facing this problem  have a faulty  jbpm 
setup (database e.g.)?

Where to look next? Any ideas? 

Karsten

btw: @Ronald: Thanks for your effort, you have definetely helped a lot of 
people in this forum!


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4081338#4081338

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4081338
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to