From e0f3e7f073ca7a3065dcb514d0b949057b3e8389 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Tue, 9 Mar 2010 14:23:07 +0000 Subject: [PATCH] Solved WW-3402 - memory leak git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@920892 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/struts2/StrutsSpringTestCase.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/junit/src/main/java/org/apache/struts2/StrutsSpringTestCase.java b/plugins/junit/src/main/java/org/apache/struts2/StrutsSpringTestCase.java index 014805f32..7af3f3229 100644 --- a/plugins/junit/src/main/java/org/apache/struts2/StrutsSpringTestCase.java +++ b/plugins/junit/src/main/java/org/apache/struts2/StrutsSpringTestCase.java @@ -28,18 +28,22 @@ import org.springframework.web.context.WebApplicationContext; * Base class for Spring JUnit actions */ public abstract class StrutsSpringTestCase extends StrutsTestCase { + private static final String DEFAULT_CONTEXT_LOCATION = "classpath*:applicationContext.xml"; protected static ApplicationContext applicationContext; - protected void setupBeforeInitDispatcher() throws Exception { - //init context - GenericXmlContextLoader xmlContextLoader = new GenericXmlContextLoader(); - applicationContext = xmlContextLoader.loadContext(getContextLocations()); + // only load beans from spring once + if (applicationContext == null) { + GenericXmlContextLoader xmlContextLoader = new GenericXmlContextLoader(); + applicationContext = xmlContextLoader.loadContext(getContextLocations()); + } + servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, applicationContext); } protected String getContextLocations() { return DEFAULT_CONTEXT_LOCATION; } + }