Community
Participate
Working Groups
Stacktrace org.eclipse.emf.cdo.tests.config.impl.ConfigTestException: Error in LockingNotificationsTest.testSameBranchDifferentSession [Combined, MEM-branching, JVM, Native] at org.eclipse.emf.cdo.tests.config.impl.ConfigTest.runBare(ConfigTest.java:516) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at org.eclipse.net4j.util.tests.AbstractOMTest.run(AbstractOMTest.java:260) at junit.framework.TestSuite.runTest(TestSuite.java:243) at org.eclipse.emf.cdo.tests.config.impl.ConfigTestSuite$TestWrapper.runTest(ConfigTestSuite.java:126) at junit.framework.TestSuite.run(TestSuite.java:238) at junit.framework.TestSuite.runTest(TestSuite.java:243) at junit.framework.TestSuite.run(TestSuite.java:238) at junit.framework.TestSuite.runTest(TestSuite.java:243) at junit.framework.TestSuite.run(TestSuite.java:238) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.lang.IllegalStateException: Package not found: http://www.eclipse.org/emf/CDO/tests/model1/1.0.0 at org.eclipse.emf.cdo.common.model.CDOClassifierRef.resolve(CDOClassifierRef.java:113) at org.eclipse.emf.cdo.internal.common.protocol.CDODataInputImpl.readCDOClassifierRefAndResolve(CDODataInputImpl.java:161) at org.eclipse.emf.cdo.spi.common.revision.BaseCDORevision.readSystemValues(BaseCDORevision.java:145) at org.eclipse.emf.cdo.spi.common.revision.BaseCDORevision.read(BaseCDORevision.java:131) at org.eclipse.emf.cdo.internal.common.protocol.CDODataInputImpl.readCDORevision(CDODataInputImpl.java:447) at org.eclipse.emf.cdo.spi.common.revision.RevisionInfo.readRevision(RevisionInfo.java:193) at org.eclipse.emf.cdo.spi.common.revision.RevisionInfo.readResult(RevisionInfo.java:145) at org.eclipse.emf.cdo.internal.net4j.protocol.LoadRevisionsRequest.confirming(LoadRevisionsRequest.java:143) at org.eclipse.emf.cdo.internal.net4j.protocol.LoadRevisionsRequest.confirming(LoadRevisionsRequest.java:1) at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientRequest.confirming(CDOClientRequest.java:90) at org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedInput(RequestWithConfirmation.java:123) at org.eclipse.net4j.signal.Signal.doInput(Signal.java:326) at org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(RequestWithConfirmation.java:103) at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.java:51) at org.eclipse.net4j.signal.Signal.runSync(Signal.java:251) at org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalProtocol.java:433) at org.eclipse.net4j.signal.RequestWithConfirmation.doSend(RequestWithConfirmation.java:87) at org.eclipse.net4j.signal.RequestWithConfirmation.send(RequestWithConfirmation.java:73) at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocol.send(CDOClientProtocol.java:476) at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocol.send(CDOClientProtocol.java:509) at org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocol.loadRevisions(CDOClientProtocol.java:164) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.loadRevisions(CDORevisionManagerImpl.java:365) at org.eclipse.emf.cdo.tests.util.TestRevisionManager.loadRevisions(TestRevisionManager.java:116) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevisions(CDORevisionManagerImpl.java:276) at org.eclipse.emf.cdo.tests.util.TestRevisionManager.getRevisions(TestRevisionManager.java:71) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevision(CDORevisionManagerImpl.java:259) at org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl.getRevision(CDORevisionManagerImpl.java:252) at org.eclipse.emf.internal.cdo.view.CDOViewImpl.getRevision(CDOViewImpl.java:484) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:782) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:692) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:661) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1) at org.eclipse.emf.cdo.tests.LockingNotificationsTest.test(LockingNotificationsTest.java:104) at org.eclipse.emf.cdo.tests.LockingNotificationsTest.testSameBranchDifferentSession(LockingNotificationsTest.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at junit.framework.TestCase.runTest(TestCase.java:168) at org.eclipse.net4j.util.tests.AbstractOMTest.runBare(AbstractOMTest.java:214) at org.eclipse.emf.cdo.tests.config.impl.ConfigTest.runBare(ConfigTest.java:507) ... 18 more
I've seen this locally and on Hudson, e.g., https://hudson.eclipse.org/hudson/job/emf-cdo-integration/1745/testReport/junit/org.eclipse.emf.cdo.tests.AllConfigs$Scenario%5BCombined,%20MEM-branching,%20JVM,%20Native%5D$org.eclipse.emf.cdo.tests/LockingNotificationsTest/testSameBranchDifferentSession/
I've seen this happen too, but rarely. It's the controlView's session (session2) that doesn't know the model1 ePackage. It's registry is always an instance of CDOPackageRegistryImpl, and apparently it's this registry that returns null on CDOClassifierRef.java:110. When I debug from there, I end up at: CDOPackageUnitImpl.loadPackageFromGlobalRegistry(String) line: 391 CDOPackageUnitImpl.loadPackagesFromGlobalRegistry() line: 379 CDOPackageUnitImpl.load(InternalCDOPackageRegistry$PackageLoader, boolean) line: 247 CDOPackageUnitImpl.load(boolean) line: 239 CDOPackageInfoImpl.doGetEPackage(boolean) line: 123 CDOPackageInfoImpl.getEPackage(boolean) line: 110 CDOPackageInfoImpl.getEPackage() line: 105 CDOPackageRegistryImpl(EPackageRegistryImpl).getEPackage(String) line: 133 CDOClassifierRef.resolve(EPackage$Registry) line: 110 That's where the matter is delegated to EPackage.Registry.INSTANCE, which I thought was always a simple singleton. But it's not. In fact it's an instance of EPackageRegistryImpl.Delegator, which looks up a ClassLoader for the current thread, and then uses that as a key into a classloader- to-registry map...... and if there's no registry for the classloader, then it creates a registry that delegates to the registry of the parent classloader....... :-S This is all waaaaay over my head. I'm at a loss to understand why the global registry works this way, under what circumstances this would fail, and how our test code causes such a failure. Any comments welcome.
I'm going to disable LockingNotificationsTest.testSameBranchDifferentSession_explicitRelease() because it's failing all too often and it *seems* to be an issue with the test framework.
*** Bug 358603 has been marked as a duplicate of this bug. ***
Committed revision 9203
Moving all open issues to 4.2. Open bugs can be ported to 4.1 maintenance after they've been fixed in master.
We'll try to address open problems in 4.3 (master) first and then port fixes back to 4.2.
Moving all open bugzillas to 4.5.
Moving all unaddressed bugzillas to 4.6.
Moving all open bugs to 4.7
Moving all unresolved issues to version 4.8-
Moving all unresolved issues to version 4.9
Moving to 4.13.