diff options
author | Eike Stepper | 2008-09-14 07:41:18 +0000 |
---|---|---|
committer | Eike Stepper | 2008-09-14 07:41:18 +0000 |
commit | 3bfea46a9d980073f4d7c32a067e78174e0eef1c (patch) | |
tree | a681ac2c1ebfe4b7f0e5383121a04c8e32dfc6a7 /plugins/org.eclipse.emf.cdo.tests/src | |
parent | 8013685cbaa5434602b88e4db23f2c502758f89b (diff) | |
download | cdo-3bfea46a9d980073f4d7c32a067e78174e0eef1c.tar.gz cdo-3bfea46a9d980073f4d7c32a067e78174e0eef1c.tar.xz cdo-3bfea46a9d980073f4d7c32a067e78174e0eef1c.zip |
[246456] NullPointerException in the revision cache
https://bugs.eclipse.org/bugs/show_bug.cgi?id=246456
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src')
3 files changed, 79 insertions, 10 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java index d347185291..506cfeb3a2 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.tests; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_241464_Test; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_243310_Test; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246442_Test; +import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246456_Test; import org.eclipse.emf.cdo.tests.bugzilla.Bugzilla_246622_Test; import junit.framework.Test; @@ -50,10 +51,6 @@ public class AllTests suite.addTestSuite(RevisionDeltaWithoutDeltaSupportTest.class); suite.addTestSuite(IndexReconstructionTest.class); suite.addTestSuite(NoLegacyTest.class); - suite.addTestSuite(Bugzilla_241464_Test.class); - suite.addTestSuite(Bugzilla_243310_Test.class); - suite.addTestSuite(Bugzilla_246622_Test.class); - suite.addTestSuite(Bugzilla_246442_Test.class); suite.addTestSuite(AutoAttacherTest.class); suite.addTestSuite(SavepointTest.class); suite.addTestSuite(ChangeSubscriptionTest.class); @@ -64,6 +61,13 @@ public class AllTests // Specific for MEMStore suite.addTestSuite(QueryTest.class); + // Bugzilla verifications + suite.addTestSuite(Bugzilla_241464_Test.class); + suite.addTestSuite(Bugzilla_243310_Test.class); + suite.addTestSuite(Bugzilla_246442_Test.class); + suite.addTestSuite(Bugzilla_246456_Test.class); + suite.addTestSuite(Bugzilla_246622_Test.class); + // TODO suite.addTestSuite(GeneratedEcoreTest.class); // $JUnit-END$ diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java index f37e6d0a7b..5ba140d0f2 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java @@ -46,7 +46,7 @@ public class RevisionHolderTest extends AbstractOMTest validateList(list, 0); for (int i = 0; i < 10; i++) { - LRURevisionHolder holder = new LRURevisionHolder(list, new RevisionStub(i)); + LRURevisionHolder holder = new LRURevisionHolder(new RevisionStub(i)); linkedList.addFirst(holder); list.addHead(holder); validateList(list, i + 1); @@ -61,7 +61,7 @@ public class RevisionHolderTest extends AbstractOMTest validateList(list, 0); for (int i = 0; i < 10; i++) { - LRURevisionHolder holder = new LRURevisionHolder(list, new RevisionStub(i)); + LRURevisionHolder holder = new LRURevisionHolder(new RevisionStub(i)); linkedList.addLast(holder); list.addTail(holder); validateList(list, i + 1); @@ -75,7 +75,7 @@ public class RevisionHolderTest extends AbstractOMTest LRURevisionList list = new LRURevisionList(100); for (int i = 0; i < 10; i++) { - LRURevisionHolder holder = new LRURevisionHolder(list, new RevisionStub(i)); + LRURevisionHolder holder = new LRURevisionHolder(new RevisionStub(i)); linkedList.addLast(holder); list.addTail(holder); } @@ -95,7 +95,7 @@ public class RevisionHolderTest extends AbstractOMTest LRURevisionList list = new LRURevisionList(100); for (int i = 0; i < 10; i++) { - LRURevisionHolder holder = new LRURevisionHolder(list, new RevisionStub(i)); + LRURevisionHolder holder = new LRURevisionHolder(new RevisionStub(i)); linkedList.addLast(holder); list.addTail(holder); } @@ -115,7 +115,7 @@ public class RevisionHolderTest extends AbstractOMTest LRURevisionList list = new LRURevisionList(100); for (int i = 0; i < 10; i++) { - LRURevisionHolder holder = new LRURevisionHolder(list, new RevisionStub(i)); + LRURevisionHolder holder = new LRURevisionHolder(new RevisionStub(i)); linkedList.addLast(holder); list.addTail(holder); } @@ -135,7 +135,7 @@ public class RevisionHolderTest extends AbstractOMTest LRURevisionList list = new LRURevisionList(100); for (int i = 0; i < 10; i++) { - LRURevisionHolder holder = new LRURevisionHolder(list, new RevisionStub(i)); + LRURevisionHolder holder = new LRURevisionHolder(new RevisionStub(i)); linkedList.addLast(holder); list.addTail(holder); } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java new file mode 100644 index 0000000000..0fb7b53e7e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_246456_Test.java @@ -0,0 +1,65 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * 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: + * Simon McDuff - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests.bugzilla; + +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.internal.common.revision.cache.lru.LRURevisionCache; +import org.eclipse.emf.cdo.internal.common.revision.cache.two.TwoLevelRevisionCache; +import org.eclipse.emf.cdo.tests.AbstractCDOTest; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; +import org.eclipse.emf.cdo.tests.model1.Supplier; + +import org.eclipse.emf.internal.cdo.CDOSessionImpl; +import org.eclipse.emf.internal.cdo.CDOTransactionImpl; + +/** + * @author Simon McDuff + */ +public class Bugzilla_246456_Test extends AbstractCDOTest +{ + public void testBugzilla_246456() throws Exception + { + msg("Opening session"); + CDOSessionImpl session = (CDOSessionImpl)openModel1Session(); + + msg("Opening transaction"); + CDOTransactionImpl transaction = session.openTransaction(); + ((LRURevisionCache)((TwoLevelRevisionCache)transaction.getSession().getRevisionManager().getCache()).getLevel1()) + .setCapacityRevised(10); + ((LRURevisionCache)((TwoLevelRevisionCache)transaction.getSession().getRevisionManager().getCache()).getLevel1()) + .setCapacityCurrent(10); + transaction.setUniqueResourceContents(false); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + for (int i = 0; i < 10; i++) + { + Supplier supplier2 = Model1Factory.eINSTANCE.createSupplier(); + resource.getContents().add(supplier2); + transaction.commit(); + } + + Supplier supplier2 = Model1Factory.eINSTANCE.createSupplier(); + resource.getContents().add(supplier2); + + msg("Committing"); + transaction.commit(); + } +} |