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

Reply via email to