Hi Jeen,
you can also pass variables when you signal an already running process instance, the ExecutionService has a signal method that takes a map as parameter.
I haven't used java tasks that much, I found custom activities to be more convenient (see: http://docs.jboss.com/jbpm/v4/userguide/html_single/#custom) you have access to the execution in their signal() and execute() methods, the variables can be retrieved with execution.getVariable('varname').