Author: mriou
Date: Wed Oct 22 08:57:47 2008
New Revision: 707107
URL: http://svn.apache.org/viewvc?rev=707107&view=rev
Log:
ODE-395 MessageExchangeDAOs of in-memory processes are kept in memory despite
release()
Modified:
ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
ode/trunk/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
Modified:
ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java?rev=707107&r1=707106&r2=707107&view=diff
==============================================================================
---
ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
(original)
+++
ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
Wed Oct 22 08:57:47 2008
@@ -118,5 +118,7 @@
MessageExchangeDAO createMessageExchange(String mexId, char dir);
MessageExchangeDAO getMessageExchange(String mexid);
+
+ void releaseMessageExchange(String mexid);
}
Modified:
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java?rev=707107&r1=707106&r2=707107&view=diff
==============================================================================
---
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
(original)
+++
ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
Wed Oct 22 08:57:47 2008
@@ -83,8 +83,12 @@
throw e;
}
}
+
+ public void releaseMessageExchange(String mexid) {
+ // TODO Auto-generated method stub
+ }
- public ProcessDAO createProcess(QName pid, QName type, String guid, long
version) {
+ public ProcessDAO createProcess(QName pid, QName type, String guid,
long version) {
HProcess process = new HProcess();
process.setProcessId(pid.toString());
process.setTypeName(type.getLocalPart());
Modified:
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java?rev=707107&r1=707106&r2=707107&view=diff
==============================================================================
---
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
(original)
+++
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
Wed Oct 22 08:57:47 2008
@@ -89,6 +89,10 @@
return ret;
}
+ public void releaseMessageExchange(String mexid) {
+ // TODO Auto-generated method stub
+ }
+
public ProcessDAO createProcess(QName pid, QName type, String guid, long
version) {
ProcessDAOImpl ret = new ProcessDAOImpl(pid,type,guid,version);
_em.persist(ret);
Modified:
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java?rev=707107&r1=707106&r2=707107&view=diff
==============================================================================
---
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
(original)
+++
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
Wed Oct 22 08:57:47 2008
@@ -351,6 +351,7 @@
public void release() {
__log.debug("Releasing mex " + getMessageExchangeId());
_changes.add(Change.RELEASE);
+ _process.releaseMessageExchange(getMessageExchangeId());
}
public String toString() {
Modified:
ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
URL:
http://svn.apache.org/viewvc/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java?rev=707107&r1=707106&r2=707107&view=diff
==============================================================================
--- ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
(original)
+++ ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEProcess.java
Wed Oct 22 08:57:47 2008
@@ -1001,6 +1001,11 @@
return _inMemDao.getConnection().getMessageExchange(mexId);
}
+ public void releaseMessageExchange(String mexId) {
+ if (isInMemory()) {
+ _inMemDao.getConnection().releaseMessageExchange(mexId);
+ }
+ }
/**
* Schedule process-level work. This method defers to the server to do the
scheduling and wraps the [EMAIL PROTECTED] Runnable} in a
* try-finally block that ensures that the process is hydrated.
Modified:
ode/trunk/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java?rev=707107&r1=707106&r2=707107&view=diff
==============================================================================
---
ode/trunk/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
(original)
+++
ode/trunk/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
Wed Oct 22 08:57:47 2008
@@ -247,6 +247,15 @@
}
}
+ public void releaseMessageExchange(String mexid) {
+ synchronized (_mexStore) {
+ MessageExchangeDAO mexDao = _mexStore.remove(mexid);
+ if (mexDao != null) {
+ _mexList.remove(mexDao);
+ }
+ }
+ }
+
private int compareInstanceUsingKey(String key, ProcessInstanceDAO
instanceDAO1, ProcessInstanceDAO instanceDAO2) {
String s1 = null;
String s2 = null;