[JBoss jBPM] - Re: when i end the TaskInstance, an LazyInitializationExcepti
by foolpcman
Hi,vtysh
you are so warmhearted,I'm so sorry for asking you three times.
Why don't you go to sleep?:)
As you say,I modified the code like this:
| JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
| JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
| Session hsession = jbpmContext.getSession();
| try {
| hsession.save(businessReport);
| ProcessDefinition pd = jbpmContext.getGraphSession().findLatestProcessDefinition("RNDFProcess");
| ProcessInstance pi = pd.createProcessInstance();
| //pi.getContextInstance().setVariable("username", from_username);
| TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
| ti.setVariable("report_id", businessReport.getReportId());
| ti.end();
| } catch (Exception e) {
| System.out.println("Unknown error in the SaveGo().");
| return_code = Property.SQL_ERROR;
| message = "?????????";
| event_type = "";
| e.getMessage();
| e.printStackTrace();
| jbpmContext.setRollbackOnly();
| }finally{
| jbpmContext.close();
| }
But it's throws exception all the time
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4069565#4069565
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4069565
17Â years, 2Â months
[JBoss Seam] - check if entity is change
by szaccaria
Hi to all,
It is possible to know if a entity it is changed after submit a form and first the entityManager flush this change in db? I make this kind of question because I need to controll if a entity be changed from the user, so I can sign a flag.
Morover I have the follow SFSB
| @Stateful
| @Scope(ScopeType.CONVERSATION)
| @Name("gestione")
| public class Gestione implements GestioneI {
|
| @PersistenceContext(type = PersistenceContextType.EXTENDED)
| EntityManager entityManager;
|
| @Out(scope = ScopeType.CONVERSATION, required = false)
| Documento doc;
|
| @In(required = false)
| Long idDocumento;
|
| @In(required = false)
| TaskInstance taskInstance;
|
| @In
| private Actor actor;
|
| @Logger
| private Log log;
|
| @DataModel
| private List<TaskInstance> taskInstacesResponsabile;
|
| @DataModelSelection
| private TaskInstance task;
|
| private String tab;
|
| @StartTask(flushMode=FlushModeType.MANUAL)
| public String iniziaValutazioneDoc(String tab) {
|
| String out = continuaValutazioneDoc(tab);
|
| return out;
| }
|
| @BeginTask(flushMode=FlushModeType.MANUAL)
| public String continuaValutazioneDoc(String tab) {
|
| this.tab = tab;
|
| doc = (Documento) entityManager.createQuery("select distinct d from Documento d where d.id = :id").setParameter("id", idDocumento).getSingleResult();
|
| return "/documento.xhtml";
|
| }
|
| @BeginTask
| @EndTask(transition = "confermato")
| public String chiudiValutazioneDoc(String tab) {
|
| if (taskInstance.getStart() == null)
| taskInstance.start();
|
| this.tab = tab;
|
| return "/todo2.xhtml";
| }
|
| @EndTask(transition = "confermato")
| public String confermaAInterno(String tab) {
|
| taskInstance.setActorId((String)taskInstance.getVariable("responsabile"));
|
| taskInstance.setVariable(getTrackVariableNameForActor(actor), actor.getId());
|
|
| this.tab = tab;
|
| return "/todo.xhtml";
| }
|
| @End
| public String sospendiValutazioneDoc(String tab) {
|
| this.tab = tab;
| return "/todo2.xhtml";
|
| }
|
|
|
|
|
| @Destroy
| @Remove
| public void destroy() {
| }
|
|
|
| public void caricaTasksInCarico() {
|
| JbpmContext context = ManagedJbpmContext.instance();
|
| taskInstacesResponsabile = context.getSession().createQuery(
| "select ti "+
| "from org.jbpm.taskmgmt.exe.TaskInstance ti, "+
| " org.jbpm.context.exe.VariableInstance vi join vi.processInstance pi " +
| "where " +
| " pi.end = null and " +
| " ti.token.processInstance = pi and " +
| " vi.name = :track and " +
| " vi.value = :trackValue and " +
| " ( ti.actorId = null or ti.actorId != :actorId ) and " +
| " ti.isOpen = true" ).setString("track", getTrackVariableNameForActor(actor)).setString("trackValue",actor.getId()).setString("actorId", actor.getId()).list();
|
|
| for (Iterator iter = taskInstacesResponsabile.iterator(); iter.hasNext();) {
| TaskInstance element = (TaskInstance) iter.next();
| log.error("TaskInstance n° #0 di #1", element.getId(), element.getActorId());
| }
|
| }
|
| /**
| * Genero il documento pdf in memoria
| */
| public String stampaDocumento() {
|
| FacesContext faces = FacesContext.getCurrentInstance();
|
| ByteArrayOutputStream bAOS = PdfUtility.stampaPDF(doc);
|
| HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
| response.setContentType("application/pdf");
| response.setContentLength(bAOS.size());
| response.setHeader("Content-disposition", "Attachment; filename=\"" + doc.getClifor() + "_" + doc.getNumdoc() + ".pdf" + "\"");
| try {
| ServletOutputStream out;
| out = response.getOutputStream();
| out.write(bAOS.toByteArray());
| } catch (IOException e) {
| e.printStackTrace();
| }
| faces.responseComplete();
|
| return null;
|
| }
|
|
| public String consultazioneDocumento( String tab) {
|
| doc = (Documento) entityManager.createQuery("select distinct d from Documento d where d.id = :id").setParameter("id", task.getVariable("idDocumento"))
| .getSingleResult();
|
| this.tab = tab;
| return "/documento.xhtml";
|
| }
|
|
|
| public String salvaDocumento() {
|
| entityManager.persist(doc);
|
| return null;
| }
|
| public TaskInstance getTaskInstance() {
| return taskInstance;
| }
|
| public void setTaskInstance(TaskInstance taskInstance) {
| this.taskInstance = taskInstance;
| }
|
| /**
| * Mi torna il nome della variabile track per l'utente actor
| */
| private String getTrackVariableNameForActor(Actor actor) {
|
| String sActor = actor.getId();
| StringBuffer trackBuff = new StringBuffer();
| trackBuff.append("trackFor");
| if (sActor != null && sActor.trim().length() > 1) {
| trackBuff.append(sActor.substring(0, 1).toUpperCase());
| trackBuff.append(sActor.substring(1));
| }
| return trackBuff.toString();
|
| }
|
|
| }
|
|
when I call from a xhtml page the action: gestione.stampaDocumento
like:
| <h:form>
| <h:commandButton
| action="#{gestione.stampaDocumento}"
| value="#{messages.generapdf}"
| style="border: none;"
| image="/img/pdf.png"
| title="#{messages.generapdf}"
| rendered="#{s:hasRole('controllo')}">
| </h:commandButton>
| </h:form>
|
The possible change that user made to the endity are flush in to the db, although i don't end the conversation, ( flushMode=FlushModeType.MANUAL is set in al @starttask )
Thanks !!!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4069563#4069563
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4069563
17Â years, 2Â months
[JBoss Messaging] - Messaging hangs
by mwelss
We are using jboss 4.2.1, and Messaging 1.4.0CR1
We have a lot of servlets that listen to topics or produce into queues and sooner or later the messaging is completely stuck.
Here is a sample stacktrace where the thread wants to create a new session. This is were most of the threads are blocked.
I have the complete thread dump, if neccessary.
anonymous wrote :
| 2007-08-01 11:46:51
| Full thread dump Java HotSpot(TM) Server VM (1.6.0_02-b05 mixed mode):
|
| "http-0.0.0.0-8080-30" daemon prio=10 tid=0x08bc0000 nid=0x3a67 waiting for monitor entry [0x859e0000..0x859e1030]
| java.lang.Thread.State: BLOCKED (on object monitor)
| at org.jboss.jms.server.ServerPeer.getDefaultDLQInstance(ServerPeer.java:1090)
| - waiting to lock <0x9565fb58> (a org.jboss.jms.server.ServerPeer)
| at org.jboss.jms.server.endpoint.ServerSessionEndpoint.(ServerSessionEndpoint.java:209)
| at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.createSessionDelegate(ServerConnectionEndpoint.java:242)
| at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$createSessionDelegate$aop(ConnectionAdvised
| .java:75)
| at org.jboss.jms.server.endpoint.advised.ConnectionAdvised$createSessionDelegate_6052335267724906805.invokeNext(ConnectionAdvised$createSessionDelegate_605233
| 5267724906805.java)
| at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
| at org.jboss.jms.server.endpoint.advised.ConnectionAdvised$createSessionDelegate_6052335267724906805.invokeNext(ConnectionAdvised$createSessionDelegate_605233
| 5267724906805.java)
| at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.createSessionDelegate(ConnectionAdvised.java)
| at org.jboss.jms.wireformat.ConnectionCreateSessionDelegateRequest.serverInvoke(ConnectionCreateSessionDelegateRequest.java:87)
| at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:165)
| at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734)
| at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:101)
| at org.jboss.remoting.Client.invoke(Client.java:1550)
| at org.jboss.remoting.Client.invoke(Client.java:530)
| at org.jboss.remoting.Client.invoke(Client.java:518)
| at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
| at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
| at org.jboss.jms.client.delegate.ClientConnectionDelegate.org$jboss$jms$client$delegate$ClientConnectionDelegate$createSessionDelegate$aop(ClientConnectionDel
| egate.java:191)
| at org.jboss.jms.client.delegate.ClientConnectionDelegate$createSessionDelegate_6052335267724906805.invokeNext(ClientConnectionDelegate$createSessionDelegate_
| 6052335267724906805.java)
| at org.jboss.jms.client.container.StateCreationAspect.handleCreateSessionDelegate(StateCreationAspect.java:128)
| at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect2.invoke(StateCreationAspect2.java)
| at org.jboss.jms.client.delegate.ClientConnectionDelegate$createSessionDelegate_6052335267724906805.invokeNext(ClientConnectionDelegate$createSessionDelegate_
| 6052335267724906805.java)
| at org.jboss.jms.client.container.ConnectionAspect.handleCreateSessionDelegate(ConnectionAspect.java:163)
| at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source)
|
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4069562#4069562
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4069562
17Â years, 2Â months
[JBoss Seam] - JavaAssist fails to create proxy
by Sammy8306
My component:
| package org.blog.weblayer.session;
|
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.Scope;
| import org.jboss.seam.annotations.AutoCreate;
| import org.jboss.seam.annotations.Name;
|
| @Name("Sessiontag_st") @AutoCreate @Scope(ScopeType.SESSION) public class Var0 implements java.io.Serializable, weblayer.SessionVar<org.blog.domainmodel.Tag>
| {
| org.blog.domainmodel.Tag var = new org.blog.domainmodel.Tag();
|
| public void setVar(org.blog.domainmodel.Tag var)
| {
| this.var = var;
| }
|
| public org.blog.domainmodel.Tag getVar()
| {
| return var;
| }
| }
|
The interface:
| package weblayer;
|
| public interface SessionVar<T> {
|
| public T getVar();
|
| public void setVar(T t);
|
| }
|
The lookup in another component:
| ((weblayer.SessionVar)Component.getInstance("Sessiontag_st")).setVar(t);
|
this line fails with:
| org.jboss.seam.InstantiationException
| <snip>
| Caused by: java.lang.RuntimeException: duplicate method: getVar
| [java] at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:173)
| [java] at org.jboss.seam.Component.createProxyFactory(Component.java:1979)
| [java] at org.jboss.seam.Component.getProxyFactory(Component.java:1154)
| [java] at org.jboss.seam.Component.wrap(Component.java:1145)
| [java] at org.jboss.seam.Component.instantiateJavaBean(Component.java:1134)
| [java] at org.jboss.seam.Component.instantiate(Component.java:1088)
| [java] at org.jboss.seam.Component.newInstance(Component.java:1736)
| [java] ... 76 more
| [java] Caused by: javassist.CannotCompileException: duplicate method: getVar
| [java] at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:544)
| [java] at javassist.bytecode.ClassFile.addMethod(ClassFile.java:528)
| [java] at javassist.util.proxy.ProxyFactory.override(ProxyFactory.java:373)
| [java] at javassist.util.proxy.ProxyFactory.overrideMethods(ProxyFactory.java:349)
| [java] at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:277)
| [java] at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:164)
| [java] ... 82 more
|
If I get rid of the interface on the session scoped component and cast to Var0 directly, everything works dandy... So, why can't my Seam component implement an interface?
(offtopic: originally I wanted to make Var0 parameterized, i.e. Var, assigning it different roles for each session var so that I do not need to write a specialization for each type I have, implementing a common generic interface. However, I really need the instantiation of the member field, which cannot be done by virtue of Java's type erasure scheme for generics)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4069559#4069559
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4069559
17Â years, 2Â months