can you describe how it is used to migrate an older configuration? Is it a
case of migration modifying the data structure and depending on the
persister to write out the change in a "modern" form? Looking over at
Kevin's debugger we are certainly seeing two GeoServerPersisters in the
list of listeners.
Jody Garnett
On Fri, May 16, 2014 at 5:16 AM, Justin Deoliveira <
[email protected]> wrote:
> There is a bit of tricky logic when it comes to registering the persister
> during startup, it is used for a couple of purposes, one being to migrate
> from older configuration, you'll see code that adds it, does something, and
> then removes it after. Possible something has creeped in but yes, there
> should only be one persister registered at any given time.
>
>
> On Thu, May 15, 2014 at 6:47 PM, Kevin Smith <[email protected]>wrote:
>
>> I'm noticing multiple GeoServerPersister instances getting registered as
>> CatalogListeners both in the GeoServerPersisterTest testcase and on
>> application start up. It doesn't seem to be breaking anything other than
>> producing some warnings when combined with what I'm working on but my
>> understanding is there should only be one instance.
>>
>> Anyone have any idea what's up? Is it supposed to be doing this?
>>
>> Thread [main] (Suspended (breakpoint at line 1388 in CatalogImpl))
>> CatalogImpl.addListener(CatalogListener) line: 1388
>> SystemTestData.createCatalog() line: 286
>> SystemTestData.setUp() line: 123
>> GeoServerPersisterTest(GeoServerBaseTestSupport<T>).doSetup() line:
>> 148
>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>> available [native method]
>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
>> Method.invoke(Object, Object...) line: 606
>> FrameworkMethod$1.runReflectiveCall() line: 47
>> FrameworkMethod$1(ReflectiveCallable).run() line: 12
>> FrameworkMethod.invokeExplosively(Object, Object...) line: 44
>> RunBefores.evaluate() line: 24
>> RunAfters.evaluate() line: 27
>> RunRules.evaluate() line: 20
>> BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement,
>> Description, RunNotifier) line: 271
>> BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line:
>> 70
>> BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 50
>> ParentRunner$3.run() line: 238
>> ParentRunner$1.schedule(Runnable) line: 63
>> BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier)
>> line: 236
>> ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 53
>> ParentRunner$2.evaluate() line: 229
>> RunBefores.evaluate() line: 26
>> RunAfters.evaluate() line: 27
>> BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 309
>> JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution)
>> line: 50
>> TestExecution.run(ITestReference[]) line: 38
>> RemoteTestRunner.runTests(String[], String, TestExecution) line:
>> 467
>> RemoteTestRunner.runTests(TestExecution) line: 683
>> RemoteTestRunner.run() line: 390
>> RemoteTestRunner.main(String[]) line: 197
>>
>> Thread [main] (Suspended (breakpoint at line 1388 in CatalogImpl))
>> owns: ConcurrentHashMap<K,V> (id=90)
>> owns: Object (id=91)
>> CatalogImpl.addListener(CatalogListener) line: 1388
>> DefaultGeoServerLoader.loadCatalog(Catalog, XStreamPersister) line:
>> 50
>>
>> DefaultGeoServerLoader(GeoServerLoader).postProcessBeforeInitialization(Object,
>> String) line: 112
>> GeoServerLoaderProxy.postProcessBeforeInitialization(Object, String)
>> line: 58
>>
>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).applyBeanPostProcessorsBeforeInitialization(Object,
>> String) line: 394
>>
>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).initializeBean(String,
>> Object, RootBeanDefinition) line: 1448
>>
>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String,
>> RootBeanDefinition, Object[]) line: 519
>>
>> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String,
>> RootBeanDefinition, Object[]) line: 456
>> AbstractBeanFactory$1.getObject() line: 294
>>
>> DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String,
>> ObjectFactory) line: 225
>> DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String,
>> Class<T>, Object[], boolean) line: 291
>> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line:
>> 193
>> DefaultListableBeanFactory.preInstantiateSingletons() line: 607
>>
>> GeoServerTestApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory)
>> line: 925
>> GeoServerTestApplicationContext(AbstractApplicationContext).refresh()
>> line: 472
>>
>> GeoServerPersisterTest(GeoServerSystemTestSupport).setUp(SystemTestData)
>> line: 213
>> GeoServerPersisterTest(GeoServerSystemTestSupport).setUp(TestData)
>> line: 158
>> GeoServerPersisterTest(GeoServerBaseTestSupport<T>).doSetup() line:
>> 150
>> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
>> available [native method]
>> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
>> Method.invoke(Object, Object...) line: 606
>> FrameworkMethod$1.runReflectiveCall() line: 47
>> FrameworkMethod$1(ReflectiveCallable).run() line: 12
>> FrameworkMethod.invokeExplosively(Object, Object...) line: 44
>> RunBefores.evaluate() line: 24
>> RunAfters.evaluate() line: 27
>> RunRules.evaluate() line: 20
>> BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement,
>> Description, RunNotifier) line: 271
>> BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line:
>> 70
>> BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 50
>> ParentRunner$3.run() line: 238
>> ParentRunner$1.schedule(Runnable) line: 63
>> BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier)
>> line: 236
>> ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 53
>> ParentRunner$2.evaluate() line: 229
>> RunBefores.evaluate() line: 26
>> RunAfters.evaluate() line: 27
>> BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 309
>> JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution)
>> line: 50
>> TestExecution.run(ITestReference[]) line: 38
>> RemoteTestRunner.runTests(String[], String, TestExecution) line: 467
>> RemoteTestRunner.runTests(TestExecution) line: 683
>> RemoteTestRunner.run() line: 390
>> RemoteTestRunner.main(String[]) line: 197
>>
>>
>> --
>>
>> Kevin Smith
>>
>> Junior Software Engineer | Boundless
>>
>> [email protected]
>>
>> +1-778-785-7459
>>
>> @boundlessgeo <https://twitter.com/boundlessgeo>
>>
>>
>> ------------------------------------------------------------------------------
>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
>> Instantly run your Selenium tests across 300+ browser/OS combos.
>> Get unparalleled scalability from the best Selenium testing platform
>> available
>> Simple to use. Nothing to install. Get started now for free."
>> http://p.sf.net/sfu/SauceLabs
>> _______________________________________________
>> Geoserver-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>
>>
>
>
> --
> *Justin Deoliveira*
> Vice President, Engineering | Boundless
> [email protected]
> @j_deolive <https://twitter.com/j_deolive>
>
>
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform
> available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> Geoserver-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel