mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-09-17 14:21:39 +00:00
MNT-22186: propTablesCleanupJobDetail v2 can cause Out of Memory
Cherry-pickedf201f35
b7828c0
from master to release/7.0.N
This commit is contained in:
@@ -82,7 +82,9 @@ import org.junit.runners.Suite;
|
||||
org.alfresco.repo.node.db.DbNodeServiceImplTest.class,
|
||||
|
||||
org.alfresco.repo.node.cleanup.TransactionCleanupTest.class,
|
||||
org.alfresco.repo.security.person.GetPeopleCannedQueryTest.class
|
||||
org.alfresco.repo.security.person.GetPeopleCannedQueryTest.class,
|
||||
|
||||
org.alfresco.repo.domain.schema.script.DeleteNotExistsExecutorTest.class
|
||||
})
|
||||
public class AllDBTestsTestSuite
|
||||
{
|
||||
|
@@ -75,7 +75,6 @@ import org.junit.runners.Suite;
|
||||
org.alfresco.repo.site.SiteServiceImplTest.class,
|
||||
|
||||
// [classpath:alfresco/application-context.xml, classpath:scriptexec/script-exec-test.xml]
|
||||
org.alfresco.repo.domain.schema.script.DeleteNotExistsExecutorTest.class,
|
||||
org.alfresco.repo.domain.schema.script.ScriptExecutorImplIntegrationTest.class,
|
||||
org.alfresco.repo.domain.schema.script.ScriptBundleExecutorImplIntegrationTest.class,
|
||||
|
||||
|
@@ -35,10 +35,14 @@ import java.util.Properties;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.alfresco.repo.domain.dialect.Dialect;
|
||||
import org.alfresco.repo.domain.dialect.MySQLInnoDBDialect;
|
||||
import org.alfresco.util.ApplicationContextHelper;
|
||||
import org.alfresco.util.testing.category.DBTests;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -48,11 +52,13 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
*
|
||||
* @author Cristian Turlica
|
||||
*/
|
||||
@Category({DBTests.class})
|
||||
public class DeleteNotExistsExecutorTest
|
||||
{
|
||||
private static ApplicationContext ctx;
|
||||
private ScriptExecutor scriptExecutor;
|
||||
private DataSource dataSource;
|
||||
private Dialect dialect;
|
||||
private JdbcTemplate jdbcTmpl;
|
||||
|
||||
@BeforeClass
|
||||
@@ -67,9 +73,20 @@ public class DeleteNotExistsExecutorTest
|
||||
{
|
||||
scriptExecutor = ctx.getBean("simpleScriptExecutor", ScriptExecutorImpl.class);
|
||||
dataSource = ctx.getBean("dataSource", DataSource.class);
|
||||
dialect = ctx.getBean("dialect", Dialect.class);
|
||||
jdbcTmpl = new JdbcTemplate(dataSource);
|
||||
}
|
||||
|
||||
private DeleteNotExistsExecutor createDeleteNotExistsExecutor(Connection connection, String sql, int line, File scriptFile, Properties properties)
|
||||
{
|
||||
if (dialect instanceof MySQLInnoDBDialect)
|
||||
{
|
||||
return new MySQLDeleteNotExistsExecutor(connection, sql, line, scriptFile, properties, dataSource);
|
||||
}
|
||||
|
||||
return new DeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
}
|
||||
|
||||
@Test()
|
||||
public void testDefaultBehaviour() throws Exception
|
||||
{
|
||||
@@ -90,7 +107,7 @@ public class DeleteNotExistsExecutorTest
|
||||
{
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_READ_ONLY)).thenReturn("true");
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_TIMEOUT_SECONDS)).thenReturn("-1");
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = new DeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = createDeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
deleteNotExistsExecutor.execute();
|
||||
|
||||
List<String> res = jdbcTmpl.queryForList(select, String.class);
|
||||
@@ -100,7 +117,7 @@ public class DeleteNotExistsExecutorTest
|
||||
{
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_READ_ONLY)).thenReturn("false");
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_TIMEOUT_SECONDS)).thenReturn("-1");
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = new DeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = createDeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
deleteNotExistsExecutor.execute();
|
||||
|
||||
List<String> res = jdbcTmpl.queryForList(select, String.class);
|
||||
@@ -133,7 +150,7 @@ public class DeleteNotExistsExecutorTest
|
||||
{
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_DELETE_BATCH_SIZE)).thenReturn("1");
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_READ_ONLY)).thenReturn("false");
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = new DeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = createDeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
deleteNotExistsExecutor.execute();
|
||||
|
||||
List<String> res = jdbcTmpl.queryForList(select, String.class);
|
||||
@@ -167,7 +184,7 @@ public class DeleteNotExistsExecutorTest
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_BATCH_SIZE)).thenReturn("2");
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_READ_ONLY)).thenReturn("false");
|
||||
when(properties.getProperty(DeleteNotExistsExecutor.PROPERTY_TIMEOUT_SECONDS)).thenReturn("-1");
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = new DeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
DeleteNotExistsExecutor deleteNotExistsExecutor = createDeleteNotExistsExecutor(connection, sql, line, scriptFile, properties);
|
||||
deleteNotExistsExecutor.execute();
|
||||
|
||||
List<String> res = jdbcTmpl.queryForList(select, String.class);
|
||||
|
Reference in New Issue
Block a user