Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MemoryLeakTest.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MemoryLeakTest.java290
1 files changed, 145 insertions, 145 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MemoryLeakTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MemoryLeakTest.java
index db5da37529..b3fac0a813 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MemoryLeakTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/MemoryLeakTest.java
@@ -1,145 +1,145 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.tests;
-
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.tests.model1.Category;
-import org.eclipse.emf.cdo.tests.model1.Company;
-import org.eclipse.emf.cdo.tests.model1.Product1;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.CDOUtil;
-import org.eclipse.emf.cdo.util.CommitException;
-
-import org.eclipse.net4j.util.WrappedException;
-import org.eclipse.net4j.util.io.IOUtil;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.resource.Resource;
-
-/**
- * @author Eike Stepper
- */
-public class MemoryLeakTest extends AbstractCDOTest
-{
- private static final int LEVELS = 5;
-
- private static final int CATEGORIES = 5;
-
- private static final int PRODUCTS = 10;
-
- protected Company company;
-
- @Override
- protected void doSetUp() throws Exception
- {
- // disableConsole();
- super.doSetUp();
-
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- Resource resource = transaction.createResource(getResourcePath("res1"));
-
- company = getModel1Factory().createCompany();
- resource.getContents().add(company);
- commit();
- }
-
- @Override
- protected void doTearDown() throws Exception
- {
- // enableConsole();
- super.doTearDown();
- }
-
- protected void commit()
- {
- try
- {
- CDOTransaction transaction = (CDOTransaction)CDOUtil.getCDOObject(company).cdoView();
- transaction.commit();
- }
- catch (CommitException ex)
- {
- throw WrappedException.wrap(ex);
- }
- }
-
- public void testLargeModel() throws Exception
- {
- Category category = getModel1Factory().createCategory();
- category.setName("ROOT");
- company.getCategories().add(category);
- commit();
-
- try
- {
- createModel(category, LEVELS);
- }
- catch (OutOfMemoryError error)
- {
- error.printStackTrace();
- }
- }
-
- private void createModel(Category parent, int levels)
- {
- IOUtil.OUT().println(parent + ": " + (LEVELS - levels));
-
- EList<Category> categories = parent.getCategories();
- for (int i = 0; i < CATEGORIES; i++)
- {
- Category category = getModel1Factory().createCategory();
- category.setName("Category" + levels + "-" + i);
- categories.add(category);
- }
-
- EList<Product1> products = parent.getProducts();
- for (int i = 0; i < PRODUCTS; i++)
- {
- Product1 product = getModel1Factory().createProduct1();
- product.setName("Product" + levels + "-" + i);
- products.add(product);
- }
-
- commit();
-
- if (levels > 0)
- {
- for (Category category : categories)
- {
- createModel(category, levels - 1);
- }
- }
- }
-
- @SuppressWarnings("unused")
- private Category selectCategory(EList<Category> categories)
- {
- int size = categories.size();
- if (size == 0)
- {
- return null;
- }
-
- int index = (int)(Math.random() * size);
- Category category = categories.get(index);
- if (Math.random() >= .5d)
- {
- Category recurse = selectCategory(category.getCategories());
- if (recurse != null)
- {
- return recurse;
- }
- }
-
- return category;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.tests;
+
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.tests.model1.Category;
+import org.eclipse.emf.cdo.tests.model1.Company;
+import org.eclipse.emf.cdo.tests.model1.Product1;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOUtil;
+import org.eclipse.emf.cdo.util.CommitException;
+
+import org.eclipse.net4j.util.WrappedException;
+import org.eclipse.net4j.util.io.IOUtil;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * @author Eike Stepper
+ */
+public class MemoryLeakTest extends AbstractCDOTest
+{
+ private static final int LEVELS = 5;
+
+ private static final int CATEGORIES = 5;
+
+ private static final int PRODUCTS = 10;
+
+ protected Company company;
+
+ @Override
+ protected void doSetUp() throws Exception
+ {
+ // disableConsole();
+ super.doSetUp();
+
+ CDOSession session = openSession();
+ CDOTransaction transaction = session.openTransaction();
+ Resource resource = transaction.createResource(getResourcePath("res1"));
+
+ company = getModel1Factory().createCompany();
+ resource.getContents().add(company);
+ commit();
+ }
+
+ @Override
+ protected void doTearDown() throws Exception
+ {
+ // enableConsole();
+ super.doTearDown();
+ }
+
+ protected void commit()
+ {
+ try
+ {
+ CDOTransaction transaction = (CDOTransaction)CDOUtil.getCDOObject(company).cdoView();
+ transaction.commit();
+ }
+ catch (CommitException ex)
+ {
+ throw WrappedException.wrap(ex);
+ }
+ }
+
+ public void testLargeModel() throws Exception
+ {
+ Category category = getModel1Factory().createCategory();
+ category.setName("ROOT");
+ company.getCategories().add(category);
+ commit();
+
+ try
+ {
+ createModel(category, LEVELS);
+ }
+ catch (OutOfMemoryError error)
+ {
+ error.printStackTrace();
+ }
+ }
+
+ private void createModel(Category parent, int levels)
+ {
+ IOUtil.OUT().println(parent + ": " + (LEVELS - levels));
+
+ EList<Category> categories = parent.getCategories();
+ for (int i = 0; i < CATEGORIES; i++)
+ {
+ Category category = getModel1Factory().createCategory();
+ category.setName("Category" + levels + "-" + i);
+ categories.add(category);
+ }
+
+ EList<Product1> products = parent.getProducts();
+ for (int i = 0; i < PRODUCTS; i++)
+ {
+ Product1 product = getModel1Factory().createProduct1();
+ product.setName("Product" + levels + "-" + i);
+ products.add(product);
+ }
+
+ commit();
+
+ if (levels > 0)
+ {
+ for (Category category : categories)
+ {
+ createModel(category, levels - 1);
+ }
+ }
+ }
+
+ @SuppressWarnings("unused")
+ private Category selectCategory(EList<Category> categories)
+ {
+ int size = categories.size();
+ if (size == 0)
+ {
+ return null;
+ }
+
+ int index = (int)(Math.random() * size);
+ Category category = categories.get(index);
+ if (Math.random() >= .5d)
+ {
+ Category recurse = selectCategory(category.getCategories());
+ if (recurse != null)
+ {
+ return recurse;
+ }
+ }
+
+ return category;
+ }
+}

Back to the top