[jboss-user] [JBoss jBPM] - a session problem

jeffery.wu do-not-reply at jboss.com
Wed Jul 26 06:09:32 EDT 2006


i have used the framework as "spring in the air"
when i run testcase as follow, there was the "session is closed".
how can i resolve it?


  | import java.util.Iterator;
  | import java.util.List;
  | 
  | import org.jbpm.JbpmConfiguration;
  | import org.jbpm.JbpmContext;
  | import org.jbpm.graph.def.ProcessDefinition;
  | 
  | import com.macrowise.common.spring.SpringTestCase;
  | 
  | public class ProcessManagerTest extends SpringTestCase {
  | 	
  | 	private ProcessManager processManager;
  | 	
  | 	private JbpmConfiguration jbpmConfiguration;
  | 
  | 	public static void main(String[] args) {
  | 		junit.textui.TestRunner.run(ProcessManagerTest.class);
  | 		System.exit(0);
  | 	}
  | 	
  | 	protected void setUp() {
  | 		try {
  | 			super.setUp();
  | 
  | 			springSetup(new String[] { "beans/applicationContext.xml",
  | 					"beans/persist.xml", "beans/jbpm.xml", "beans/jbpm/ProcessManager.xml" });
  | 
  | 			processManager = (ProcessManager) getBean("processManager");
  | 			
  | 			jbpmConfiguration = (JbpmConfiguration) getBean("jbpmConfiguration");
  | 
  | 			beginTransaction();
  | 
  | 		} catch (Exception e) {
  | 			e.printStackTrace();
  | 		}
  | 	}
  | 	
  | 	protected void tearDown() {
  | 		try {
  | 			super.tearDown();
  | 			rollback();
  | 		} catch (Exception e) {
  | 			e.printStackTrace();
  | 		}
  | 	}
  | 	
  | 	public void testDeploy() {
  | 		JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
  | 
  | 		ProcessDefinition processDefinition = ProcessDefinition
  | 				.parseXmlString("<process-definition name='hello world'>"
  | 						+ "  <start-state name='start'>"
  | 						+ "    <transition to='s' />" + "  </start-state>"
  | 						+ "  <state name='s'>" + "    <transition to='end' />"
  | 						+ "  </state>" + "  <end-state name='end' />"
  | 						+ "</process-definition>");
  | 
  | 		jbpmContext.deployProcessDefinition(processDefinition);
  | 	}
  | 
  | 	public void testFindAllProcess() {
  | 		List allProcessList = processManager.findAllProcess();
  | 		assertNotNull(allProcessList);
  | 	}
  | 	
  | 	public void testGetProcess() {;
  | 		List allProcessList = processManager.findAllProcess();
  | 		
  | 		for (Iterator iter = allProcessList.iterator(); iter.hasNext();) {
  | 			ProcessDefinition element = (ProcessDefinition) iter.next();
  | 			ProcessDefinition testProcess = processManager.getProcess(element.getId());
  | 			assertEquals(testProcess, element);
  | 		}	
  | 	}
  | }
  | 
  | 


  | org.jbpm.JbpmException: couldn't find all process definitions
  | 	at org.jbpm.db.GraphSession.findAllProcessDefinitions(GraphSession.java:214)
  | 	at com.macrowise.common.bpm.jbpm.manager.ProcessManagerImpl.findAllProcess(ProcessManagerImpl.java:15)
  | 	at com.macrowise.common.bpm.jbpm.manager.ProcessManagerTest.testFindAllProcess(ProcessManagerTest.java:65)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  | 	at java.lang.reflect.Method.invoke(Unknown Source)
  | 	at junit.framework.TestCase.runTest(TestCase.java:164)
  | 	at junit.framework.TestCase.runBare(TestCase.java:130)
  | 	at junit.framework.TestResult$1.protect(TestResult.java:106)
  | 	at junit.framework.TestResult.runProtected(TestResult.java:124)
  | 	at junit.framework.TestResult.run(TestResult.java:109)
  | 	at junit.framework.TestCase.run(TestCase.java:120)
  | 	at junit.framework.TestSuite.runTest(TestSuite.java:230)
  | 	at junit.framework.TestSuite.run(TestSuite.java:225)
  | 	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
  | 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
  | Caused by: org.hibernate.SessionException: Session is closed!
  | 	at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
  | 	at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1222)
  | 	at org.jbpm.db.GraphSession.findAllProcessDefinitions(GraphSession.java:209)
  | 	... 20 more
  | 
  | 
  | 

the testDeploy() can run successfully. But  the testFindAllProcess() and testGetProcess() will be failed(session is closed)

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3960926



More information about the jboss-user mailing list