Hi Chuck, I think your last comment was correct:
>> I think that means a model is being used that is not yet in an EOModelGroup. I added the model name to the new MockEditingContext() call and no more fail to date when I run only this test class. If I run the complete project tests, I still have intermittent fail at the same place even after adding the model name to all the MockEditingContext constructors. I hate intermittent problems! Maybe Henrique Prange understand the situation. If the model name is mandatory to ensure it's loading before the test run, I suggest to enforce at least one name in the constructor of the MockEditingContext. Samuel Le 2013-06-18 à 18:10, Chuck Hill <[email protected]> a écrit : > Hi Samuel, > > JUnit can/will run tests in a different order each time. So if your tests > depend on something else having happened (EOF getting fully initialized, some > other test running first) you will see random failures like this. I think it > an/will run tests in multiple threads too (I use both JUnit and TestNG and > sometimes mix up their features :-) so concurrency can also cause problems > like this. > > > On 2013-06-18, at 2:13 PM, Samuel Pelletier wrote: > >> Hi, >> >> I have a test that succeed sometime and fail other times. If I run the jUnit >> source that contain this test, it fail sometime in the loadPermission() >> method. I have no idea where to look at. It is even more strange that >> sometime, I can have 6 successful tests and after 4 failed in a row. >> >> These test are inside a framework project. When I run the tests, I have >> these lines on the console but they do not seems to cause problem with the >> about 100 others tests in the project. >> >> - The EOModel 'erprototypes' has an empty connection dictionary. >> - The EOModel 'erprototypes' has an empty connection dictionary. > > Those are likely to be OK. > >> - The EOModel 'KAAccessControl' has an empty connection dictionary. >> - The EOModel 'KAAccessControl' has an empty connection dictionary. > > I am guessing you need that model for the permissions testing. This is > likely a problem. > > >> - The model 'KAAccessControl' (path: >> file:/Users/sam/work/KavijuWO/KAAccessControl/Resources/KAAccessControl.eomodeld) >> cannot be added to model group <EOModelGroup (("KAAccessControl", >> "file:/Users/sam/work/KavijuWO/KAAccessControl/Resources/KAAccessControl.eomodeld"), >> ("erprototypes", >> "file:/Users/sam/work/WonderSource/Frameworks/Core/ERPrototypes/Resources/erprototypes.eomodeld"))> >> because it already contains a model with that name. >> >> Any idea? > > Do you have multiple EOF stacks (multiple EOObjectStoreCoordinators)? You > could be using default* methods that only work with the default stack. Is > there a stack trace for that last one to show where duplication model loading > is having? > > >> >> Samuel >> >> RolesFileLoader load a plist file to create and update objects in the >> database. >> >> Here is a my test source with a single test: >> >> @Rule public MockEditingContext ec = new MockEditingContext(); >> >> @Before >> public void loadPermissions() { >> ERXProperties.setStringForKey("SampleRolesFile", >> RolesFileLoader.rolesFileNamePropertyKey); >> RolesFileLoader.loadRolesFile(ec); >> } >> >> @Test >> public void testReloadPermissions() { >> ERXProperties.setStringForKey("SampleRolesFile", >> RolesFileLoader.rolesFileNamePropertyKey); >> RolesFileLoader.loadRolesFile(ec); >> } >> >> The error stack: >> >> com.webobjects.foundation.NSForwardException >> [java.lang.reflect.InvocationTargetException] >> null:java.lang.reflect.InvocationTargetException >> … >> Caused by: java.lang.reflect.InvocationTargetException >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >> at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> at >> com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:659) >> ... 32 more >> Caused by: java.lang.NullPointerException >> at >> com.webobjects.eoaccess.EOModel.createPrototypeCache(EOModel.java:631) > > I think that means a model is being used that is not yet in an EOModelGroup. > > > Chuck > >> at >> com.webobjects.eoaccess.EOModel.prototypeAttributeNamed(EOModel.java:699) >> at >> com.webobjects.eoaccess.ERXModel.prototypeAttributeNamed(ERXModel.java:290) >> at com.webobjects.eoaccess.EOAttribute.<init>(EOAttribute.java:998) >> at com.webobjects.eoaccess.EOEntity.attributes(EOEntity.java:816) >> at com.webobjects.eoaccess.EOEntity.attributeNamed(EOEntity.java:789) >> at com.webobjects.eoaccess.EOEntity.classProperties(EOEntity.java:1098) >> at >> com.webobjects.eoaccess.EOEntity._propertyDictionaryInitializer(EOEntity.java:3321) >> at >> com.webobjects.eoaccess.EOEntity._newDictionaryForProperties(EOEntity.java:3667) >> at >> com.webobjects.eoaccess.EOEntityClassDescription._newDictionaryForProperties(EOEntityClassDescription.java:88) >> at >> com.webobjects.eocontrol.EOGenericRecord.__setClassDescription(EOGenericRecord.java:111) >> at >> com.webobjects.eocontrol.EOGenericRecord.__setClassDescription(EOGenericRecord.java:100) >> at >> com.webobjects.eocontrol.EOGenericRecord.<init>(EOGenericRecord.java:73) >> at er.extensions.eof.ERXGenericRecord.<init>(ERXGenericRecord.java:106) >> at >> com.kaviju.accesscontrol.model.base._KAAccessList.<init>(_KAAccessList.java:15) >> at >> com.kaviju.accesscontrol.model.KAAccessList.<init>(KAAccessList.java:8) >> ... 37 more > > -- > Chuck Hill > Executive Managing Partner, VP Development and Technical Services > > Practical WebObjects - for developers who want to increase their overall > knowledge of WebObjects or who are trying to solve specific problems. > http://www.global-village.net/gvc/practical_webobjects > > Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing > Companies in B.C! > > Global Village Consulting ranks 44th in 25th annual PROFIT 500 ranking of > Canada’s Fastest-Growing Companies by PROFIT Magazine! > > > > > > > > > > > > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
