merge from trunk
authorCherian Mathew <c.mathew@bgbm.org>
Tue, 9 Dec 2014 17:05:29 +0000 (17:05 +0000)
committerCherian Mathew <c.mathew@bgbm.org>
Tue, 9 Dec 2014 17:05:29 +0000 (17:05 +0000)
81 files changed:
.gitattributes
eu.etaxonomy.taxeditor.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredGenericApplicationContext.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredListableBeanFactory.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CachedCommonServiceImpl.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmClientCacheException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmEntityCacheKey.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelCacher.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelFieldPropertyFromClass.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmRemoteCacheManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmTransientEntityCacher.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/ICachedCommonService.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmEagerLoadingException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmRemotingException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java with 89% similarity]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSource.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java with 96% similarity]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java with 88% similarity]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceException.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java with 82% similarity]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/ICdmRemoteSource.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java with 94% similarity]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmClientSessionException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ISessionEventListener.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/cdmlib-ehcache.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/.svnignore [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmModelGetMethodCacherTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTestManager.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/cdmlib-ehcache.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/datasources.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/remoting/session/CdmEntitySessionManagerTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.h2.db [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.trace.db [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/log4j.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/test/resources/unitils.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExportToFileDestinationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml [deleted file]

index 71c5387eb332675aaaadad5f6d39c940770363d6..00d216e1fb60cfdbe28e10f92abf50cd86e878de 100644 (file)
@@ -330,22 +330,76 @@ eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar -text
 eu.etaxonomy.taxeditor.cdmlib/pom.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredGenericApplicationContext.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredListableBeanFactory.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CachedCommonServiceImpl.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmClientCacheException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmEntityCacheKey.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelCacher.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelFieldPropertyFromClass.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmRemoteCacheManager.java -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceException.java -text
-eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmTransientEntityCacher.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/ICachedCommonService.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmEagerLoadingException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmRemotingException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/ICdmRemoteSource.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmClientSessionException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ISessionEventListener.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/cdmlib-ehcache.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/.svnignore -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/config.properties -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_persistence_security.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_services_security.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmModelGetMethodCacherTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTestManager.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/cdmlib-ehcache.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/datasources.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml -text
 eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/remoting/session/CdmEntitySessionManagerTest.xml -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.h2.db -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.trace.db -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/log4j.properties -text
+eu.etaxonomy.taxeditor.cdmlib/src/test/resources/unitils.properties -text
 eu.etaxonomy.taxeditor.editor/.classpath -text
 eu.etaxonomy.taxeditor.editor/.project -text
 eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF -text
@@ -1773,7 +1827,6 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplemen
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/ResourceManager.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java -text
-eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml -text
 eu.etaxonomy.taxeditor.store/src/main/resources/log4j.properties -text
 eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/NameProtectTitleCacheTest.java -text
 eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/AbstractTaxeditorOperationTestBase.java -text
index e2ce3e2f35b640b8802f33f80c2209f4ca15a792..936f69db52783a7288113763a930f3ad1678223c 100644 (file)
@@ -60,7 +60,7 @@
        <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-4.1.10.Final.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-4.0.1.Final.jar"/>
-       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar"/>
+       <classpathentry exported="true" kind="lib" path="lib/hibernate-core-4.1.10.Final.jar" sourcepath="/home/cmathew/.m2/repository/org/hibernate/hibernate-core/4.1.10.Final/hibernate-core-4.1.10.Final-sources.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-4.1.10.Final.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-4.1.10.Final.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-4.1.10.Final.jar"/>
index 06b551fc609f9c792426b81a3db3512d95561626..b0f6b689650a697afc204ae5cea0730977d0ff87 100644 (file)
@@ -8,9 +8,9 @@ Export-Package: com.google.api,
  com.google.api.detect,
  com.google.api.translate,
  eu.etaxonomy.cdm.api.application,
+ eu.etaxonomy.cdm.api.cache,
  eu.etaxonomy.cdm.api.conversation,
  eu.etaxonomy.cdm.api.facade,
- eu.etaxonomy.cdm.api.lazyloading,
  eu.etaxonomy.cdm.api.service,
  eu.etaxonomy.cdm.api.service.config,
  eu.etaxonomy.cdm.api.service.description,
@@ -129,7 +129,6 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.print.out.pdf,
  eu.etaxonomy.cdm.print.out.taxpub,
  eu.etaxonomy.cdm.print.out.xml,
- eu.etaxonomy.cdm.remote,
  eu.etaxonomy.cdm.remote.config,
  eu.etaxonomy.cdm.remote.controller,
  eu.etaxonomy.cdm.remote.controller.dto,
@@ -181,8 +180,15 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.validation.annotation,
  eu.etaxonomy.cdm.validation.constraint,
  eu.etaxonomy.remote.dto.rdf,
+ eu.etaxonomy.taxeditor.remoting.source,
+ eu.etaxonomy.taxeditor.session,
+ eu.etaxonomy.taxeditor.session.mock,
+ javassist.util.proxy,
  javax.persistence,
  junit.framework;uses:="org.junit.runner.manipulation,org.junit.runner,org.junit.runner.notification",
+ net.sf.ehcache,
+ net.sf.ehcache.config,
+ net.sf.ehcache.store,
  net.sf.json;uses:="net.sf.json.processors,net.sf.json.util,org.apache.commons.lang.exception",
  org.apache.commons.collections;uses:="org.apache.commons.collections.keyvalue,new org.apache.commons.collections",
  org.apache.commons.io;uses:="org.apache.commons.io.filefilter",
@@ -255,13 +261,28 @@ Export-Package: com.google.api,
  org.hibernate,
  org.hibernate.annotations.common.reflection,
  org.hibernate.cache.internal,
+ org.hibernate.cfg,
  org.hibernate.classic,
  org.hibernate.collection.internal,
+ org.hibernate.collection.spi,
  org.hibernate.criterion,
+ org.hibernate.engine.internal,
+ org.hibernate.engine.spi,
+ org.hibernate.engine.transaction.spi,
  org.hibernate.envers.query.criteria,
+ org.hibernate.internal,
+ org.hibernate.internal.util,
+ org.hibernate.internal.util.collections,
+ org.hibernate.mapping,
+ org.hibernate.persister.collection,
+ org.hibernate.persister.entity,
+ org.hibernate.pretty,
+ org.hibernate.property,
  org.hibernate.proxy,
+ org.hibernate.proxy.pojo.javassist,
  org.hibernate.search,
  org.hibernate.search.spatial.impl,
+ org.hibernate.type,
  org.jadira.usertype.dateandtime.joda,
  org.jadira.usertype.dateandtime.shared.spi,
  org.jboss.logging,
@@ -300,6 +321,7 @@ Export-Package: com.google.api,
  org.odftoolkit.odfdom.dom.element,
  org.odftoolkit.odfdom.dom.element.style,
  org.odftoolkit.odfdom.dom.style,
+ org.springframework.beans,
  org.springframework.beans.factory,
  org.springframework.beans.factory.annotation;
   uses:="org.apache.commons.logging,
@@ -310,6 +332,9 @@ Export-Package: com.google.api,
    org.springframework.beans.factory.wiring,
    org.springframework.core.type,
    org.springframework.beans.factory",
+ org.springframework.beans.factory.config,
+ org.springframework.beans.factory.support,
+ org.springframework.beans.factory.xml,
  org.springframework.cache.ehcache,
  org.springframework.context;
   uses:="org.springframework.core.io,
@@ -322,8 +347,11 @@ Export-Package: com.google.api,
    org.aopalliance.intercept,
    org.springframework.context,
    org.springframework.beans.factory",
+ org.springframework.context.support,
  org.springframework.core;uses:="org.springframework.util",
+ org.springframework.core.env,
  org.springframework.core.io;uses:="org.jboss.virtual",
+ org.springframework.core.io.support,
  org.springframework.core.type.classreading,
  org.springframework.orm.hibernate3;
   uses:="org.apache.commons.logging,
@@ -351,6 +379,9 @@ Export-Package: com.google.api,
    org.springframework.dao,
    org.springframework.transaction.support",
  org.springframework.orm.hibernate4,
+ org.springframework.remoting,
+ org.springframework.remoting.httpinvoker,
+ org.springframework.remoting.support,
  org.springframework.security.access,
  org.springframework.security.authentication,
  org.springframework.security.authentication.event,
@@ -390,6 +421,7 @@ Export-Package: com.google.api,
    org.springframework.transaction,
    org.apache.commons.logging,
    org.springframework.beans.factory",
+ org.springframework.util,
  org.springframework.web.servlet;
   uses:="org.springframework.web.multipart,
    org.apache.commons.logging,
@@ -402,7 +434,13 @@ Export-Package: com.google.api,
    org.springframework.context.event,
    javax.servlet,
    org.springframework.ui,
-   javax.servlet.http"
+   javax.servlet.http",
+ org.unitils,
+ org.unitils.database,
+ org.unitils.database.annotations,
+ org.unitils.database.util,
+ org.unitils.dbunit.annotation,
+ org.unitils.spring.annotation
 Bundle-Vendor: EDIT
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.osgi,
@@ -613,4 +651,3 @@ Bundle-ClassPath: .,
  lib/cdmlib-remote-3.5.0-SNAPSHOT.jar,
  lib/cdmlib-services-3.5.0-SNAPSHOT-sources.jar,
  lib/cdmlib-services-3.5.0-SNAPSHOT.jar
-Import-Package: eu.etaxonomy.cdm.api.application
index 90cfc09909bd84ff974481bfed98d01ecaa83cfe..556647bc8dfb1071ad54e0782e2c7e07ff81e630 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
 * Copyright (C) 2014 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -11,18 +11,21 @@ package eu.etaxonomy.cdm.api.application;
 \r
 import javax.sql.DataSource;\r
 \r
-import org.hibernate.SessionFactory;\r
-\r
 import org.apache.log4j.Logger;\r
+import org.hibernate.SessionFactory;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.stereotype.Component;\r
 import org.springframework.transaction.PlatformTransactionManager;\r
 import org.springframework.transaction.TransactionStatus;\r
 \r
+import eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration;\r
+import eu.etaxonomy.cdm.api.cache.ICachedCommonService;\r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;\r
-import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
+import eu.etaxonomy.cdm.api.service.ICommonService;\r
 import eu.etaxonomy.cdm.ext.geo.IEditGeoService;\r
+import eu.etaxonomy.taxeditor.session.CdmEntitySessionManager;\r
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;\r
 \r
 \r
 /**\r
@@ -32,16 +35,22 @@ import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
  */\r
 @Component\r
 public class CdmApplicationRemoteConfiguration extends CdmApplicationDefaultConfiguration {\r
-       \r
+\r
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(CdmApplicationRemoteConfiguration.class);\r
 \r
        @Autowired\r
        IEditGeoService editGeoService;\r
-       \r
+\r
+    @Autowired\r
+    private ICachedCommonService cachedCommonService;\r
+    \r
+       @Autowired\r
+       protected ICdmEntitySessionManager cdmEntitySessionManager;\r
+\r
        public CdmApplicationRemoteConfiguration() {\r
        }\r
-       \r
+\r
     /* (non-Javadoc)\r
      * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#getTransactionManager()\r
      */\r
@@ -76,40 +85,52 @@ public class CdmApplicationRemoteConfiguration extends CdmApplicationDefaultConf
     public void commitTransaction(TransactionStatus txStatus) throws UnsupportedOperationException {\r
                throw new UnsupportedOperationException("commitTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
        }\r
-                       \r
+\r
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#NewConversation()\r
         */\r
        @Override\r
-       public ConversationHolder NewConversation() {           \r
+       public ConversationHolder NewConversation() {\r
                return new ConversationHolderMock();\r
        }\r
-       \r
+\r
        /**\r
         * @return\r
         */\r
        public IEditGeoService getEditGeoService() {\r
                return this.editGeoService;\r
        }\r
-       \r
+\r
+    /**\r
+     * @return\r
+     */\r
+    public ICachedCommonService getCachedCommonService(){\r
+        return this.cachedCommonService;\r
+    }\r
+    \r
+    \r
+    public ICdmEntitySessionManager getCdmEntitySessionManager() {\r
+       return this.cdmEntitySessionManager;\r
+    }\r
+\r
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#setDataSource(javax.sql.DataSource)\r
         */\r
        @Override\r
-       public void setDataSource(DataSource dataSource) {                      \r
+       public void setDataSource(DataSource dataSource) {\r
     }\r
-       \r
+\r
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#setTransactionManager(org.springframework.transaction.PlatformTransactionManager)\r
         */\r
        @Override\r
-       public void setTransactionManager(PlatformTransactionManager transactionManager) {        \r
+       public void setTransactionManager(PlatformTransactionManager transactionManager) {\r
     }\r
-       \r
+\r
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#setSessionFactory(org.hibernate.SessionFactory)\r
         */\r
        @Override\r
-    public void setSessionFactory(SessionFactory sessionFactory) {     \r
+    public void setSessionFactory(SessionFactory sessionFactory) {\r
     }\r
 }\r
index 5473ac141981dafc244e0b157a25e9ab7282a0b5..c5cbdd058ee22b73dc2dd3754e13f371c274eb66 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -24,31 +24,39 @@ import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.application.RemotingMonitoredGenericApplicationContext;
+import eu.etaxonomy.cdm.api.cache.CdmModelCacher;
 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
 import eu.etaxonomy.cdm.common.monitor.NullProgressMonitor;
 import eu.etaxonomy.cdm.common.monitor.SubProgressMonitor;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.session.CdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 
 /**
  * CDM Application Controller class for remoting clients
- * 
+ *
  * FIXME:Remoting extending {@link CdmApplicationController} is a temporary workaround.
  * The {@link CdmApplicationController} should be split into a CdmApplicationControllerBase
  * class with {@link CdmApplicationController} and this class as subclasses
  *
  */
 public class CdmApplicationRemoteController  extends CdmApplicationController {
-       
+
     private static final Logger logger = Logger.getLogger(CdmApplicationRemoteController.class);
 
-    public static final Resource DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE = 
+       
+    public static final Resource DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE =
                new ClassPathResource("/eu/etaxonomy/cdm/remotingApplicationContext.xml");
     private final Resource applicationContextResource;
     private final IProgressMonitor progressMonitor;
+
     
     /**
      * Creates new instance of CdmApplicationRemoteController
-     * 
+     *
      * @param applicationContextResource
      * @param remoteSource
      * @param omitTermLoading
@@ -56,21 +64,21 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
      * @param listeners
      * @return
      */
-    public static CdmApplicationRemoteController NewInstance(Resource applicationContextResource, 
-                       ICdmRemoteSource remoteSource,                          
-                       boolean omitTermLoading, 
-                       IProgressMonitor progressMonitor, 
+    public static CdmApplicationRemoteController NewInstance(Resource applicationContextResource,
+                       ICdmRemoteSource remoteSource,
+                       boolean omitTermLoading,
+                       IProgressMonitor progressMonitor,
                        List<ApplicationListener> listeners) {
-       return new CdmApplicationRemoteController(applicationContextResource, 
-                       remoteSource, 
-                       omitTermLoading, 
-                       progressMonitor, 
+       return new CdmApplicationRemoteController(applicationContextResource,
+                       remoteSource,
+                       omitTermLoading,
+                       progressMonitor,
                                listeners);
-       
+
     }
     /**
      * Creates new instance of CdmApplicationRemoteController
-     * 
+     *
      * @param applicationContextResource
      * @param remoteSource
      * @param omitTermLoading
@@ -78,60 +86,60 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
      * @param listeners
      * @return
      */
-    public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,                            
-                       boolean omitTermLoading, 
-                       IProgressMonitor progressMonitor, 
+    public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,
+                       boolean omitTermLoading,
+                       IProgressMonitor progressMonitor,
                        List<ApplicationListener> listeners) {
-       
-       return new CdmApplicationRemoteController(DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE, 
-                       remoteSource, 
-                       omitTermLoading, 
-                       progressMonitor, 
+
+       return new CdmApplicationRemoteController(DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE,
+                       remoteSource,
+                       omitTermLoading,
+                       progressMonitor,
                                listeners);
-       
+
     }
-    
+
        /**
         * Constructs CdmApplicationRemoteController
-        * 
+        *
         * @param applicationContextResource
         * @param remoteSource
         * @param omitTermLoading
         * @param progressMonitor
         * @param listeners
         */
-       private CdmApplicationRemoteController(Resource applicationContextResource, 
-                               ICdmRemoteSource remoteSource,                          
-                               boolean omitTermLoading, 
-                               IProgressMonitor progressMonitor, 
+       private CdmApplicationRemoteController(Resource applicationContextResource,
+                               ICdmRemoteSource remoteSource,
+                               boolean omitTermLoading,
+                               IProgressMonitor progressMonitor,
                                List<ApplicationListener> listeners){
                logger.info("Start CdmApplicationRemoteController with remote source: " + remoteSource.getName());
-        this.applicationContextResource = 
+        this.applicationContextResource =
                        applicationContextResource != null ? applicationContextResource : DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE;
         this.progressMonitor = progressMonitor != null ? progressMonitor : new NullProgressMonitor();
 
         setNewRemoteSource(remoteSource, omitTermLoading, listeners);
-               
+
        }
-       
 
-    
-    
+
+
+
     /**
      * Creates and starts a new spring application context
-     * 
+     *
      * @param remoteSource object for connecting to an http-invoker server
      * @param omitTermLoading
      * @param listeners
      * @return
      */
-    protected boolean setNewRemoteSource(ICdmRemoteSource remoteSource, 
-               boolean omitTermLoading, 
+    protected boolean setNewRemoteSource(ICdmRemoteSource remoteSource,
+               boolean omitTermLoading,
                List<ApplicationListener> listeners){
 
         logger.info("Connecting to '" + remoteSource.getName() + "'");
 
-        MonitoredGenericApplicationContext applicationContext =  new MonitoredGenericApplicationContext();
+        RemotingMonitoredGenericApplicationContext applicationContext =  new RemotingMonitoredGenericApplicationContext();
         int refreshTasks = 45;
         int nTasks = 5 + refreshTasks;
 
@@ -145,6 +153,7 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
         properties.setProperty("remoteContext", remoteSource.getContextPath());
         pspc.setProperties(properties);
         applicationContext.addBeanFactoryPostProcessor(pspc);
+        applicationContext.getEnvironment().setActiveProfiles("remoting");
         progressMonitor.worked(1);
 
         XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(applicationContext);
@@ -178,16 +187,22 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
         progressMonitor.done();
         return true;
     }
-    
+
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.application.CdmApplicationController#init()
      */
     @Override
-    protected void init(){    
+    protected void init(){
         configuration = (ICdmApplicationConfiguration)applicationContext.getBean("cdmApplicationRemoteConfiguration");
-               AbstractLazyInitializer.setConfiguration(this);
-               AbstractPersistentCollection.setConfiguration(this);
+               AbstractLazyInitializer.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
+               AbstractPersistentCollection.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
+               
+               CdmModelCacher cmdmc = new CdmModelCacher();
+               cmdmc.cacheGetterFields();
 
     }
 
+    public ICdmEntitySessionManager getCdmEntitySessionManager() {
+       return ((CdmApplicationRemoteConfiguration)configuration).getCdmEntitySessionManager();
+    }
 }
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredGenericApplicationContext.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredGenericApplicationContext.java
new file mode 100644 (file)
index 0000000..6ad7ad4
--- /dev/null
@@ -0,0 +1,139 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.api.application;\r
+\r
+import java.util.concurrent.CancellationException;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.springframework.beans.BeansException;\r
+import org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver;\r
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\r
+import org.springframework.context.support.GenericApplicationContext;\r
+import org.springframework.core.LocalVariableTableParameterNameDiscoverer;\r
+\r
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
+import eu.etaxonomy.cdm.common.monitor.SubProgressMonitor;\r
+\r
+/**\r
+ * {@link GenericApplicationContext Generic application context} which allows progress monitoring.\r
+ * @author a.mueller\r
+ * @date 29.09.2011\r
+ *\r
+ */\r
+public class RemotingMonitoredGenericApplicationContext extends GenericApplicationContext{\r
+    @SuppressWarnings("unused")\r
+    private static final Logger logger = Logger.getLogger(CdmApplicationController.class);\r
+\r
+    final int countInvokeBeanFactoryPostProcessors = 10;\r
+    final int countFinishBeanFactoryInitialization = 90;\r
+    private final int countTasks = countInvokeBeanFactoryPostProcessors + countFinishBeanFactoryInitialization;\r
+    private IProgressMonitor currentMonitor;\r
+\r
+\r
+\r
+    /**\r
+     * Constructor.\r
+     * @param progressMonitor\r
+     */\r
+    public RemotingMonitoredGenericApplicationContext() {\r
+//             MonitoredListableBeanFactory beanFactory =\r
+        super(new RemotingMonitoredListableBeanFactory());\r
+        //taken from empty constructor of GenericApplicationContext\r
+        ((RemotingMonitoredListableBeanFactory)getBeanFactory()).setSerializationId(getId());\r
+        ((RemotingMonitoredListableBeanFactory)getBeanFactory()).setParameterNameDiscoverer(new LocalVariableTableParameterNameDiscoverer());\r
+        ((RemotingMonitoredListableBeanFactory)getBeanFactory()).setAutowireCandidateResolver(new QualifierAnnotationAutowireCandidateResolver());\r
+    }\r
+\r
+\r
+    public int countTasks(){\r
+        return countTasks;\r
+    }\r
+\r
+    protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory){\r
+        String task = "Invoke bean factory post processors";\r
+        checkMonitorCancelled(currentMonitor);\r
+        currentMonitor.subTask(task);\r
+        super.invokeBeanFactoryPostProcessors(beanFactory);\r
+        currentMonitor.worked(countInvokeBeanFactoryPostProcessors);\r
+        checkMonitorCancelled(currentMonitor);\r
+    }\r
+\r
+    protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory){\r
+        checkMonitorCancelled(currentMonitor);\r
+        String task = "Finish bean factory initialization";\r
+        currentMonitor.subTask(task);\r
+        IProgressMonitor subMonitor    = new SubProgressMonitor(currentMonitor, countFinishBeanFactoryInitialization);\r
+        getMyBeanFactory().setCurrentMonitor(subMonitor);\r
+        super.finishBeanFactoryInitialization(beanFactory);\r
+        checkMonitorCancelled(currentMonitor);\r
+\r
+    }\r
+\r
+    /**\r
+     * @param progressMonitor the progressMonitor to set\r
+     */\r
+    public void setCurrentMonitor(IProgressMonitor monitor) {\r
+        this.currentMonitor = monitor;\r
+    }\r
+\r
+    /**\r
+     *\r
+     */\r
+    public IProgressMonitor getCurrentMonitor() {\r
+        return currentMonitor;\r
+    }\r
+\r
+\r
+    /* (non-Javadoc)\r
+     * @see org.springframework.context.support.AbstractApplicationContext#refresh()\r
+     */\r
+    public void refresh(IProgressMonitor monitor) throws BeansException, IllegalStateException {\r
+        checkMonitorCancelled(monitor);\r
+        String message = "Refresh application context. This might take a while ...";\r
+        currentMonitor = monitor;\r
+        beginTask(message, countTasks);\r
+        super.refresh();\r
+        taskDone();\r
+        checkMonitorCancelled(monitor);\r
+    }\r
+\r
+\r
+    /**\r
+     *\r
+     */\r
+    private void taskDone() {\r
+        if (currentMonitor != null){\r
+            currentMonitor.done();\r
+        }\r
+    }\r
+\r
+\r
+    /**\r
+     * @param monitor\r
+     * @param message\r
+     */\r
+    private void beginTask(String message, int countTasks) {\r
+        if (currentMonitor != null){\r
+            currentMonitor.beginTask(message, countTasks);\r
+        }\r
+    }\r
+\r
+\r
+    private RemotingMonitoredListableBeanFactory getMyBeanFactory(){\r
+        return (RemotingMonitoredListableBeanFactory)getBeanFactory();\r
+    }\r
+\r
+\r
+    private void checkMonitorCancelled(IProgressMonitor monitor) {\r
+        if (monitor != null && monitor.isCanceled()){\r
+            throw new CancellationException();\r
+        }\r
+    }\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredListableBeanFactory.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/RemotingMonitoredListableBeanFactory.java
new file mode 100644 (file)
index 0000000..4e03ea4
--- /dev/null
@@ -0,0 +1,128 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.api.application;\r
+\r
+import java.util.Arrays;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+import java.util.concurrent.CancellationException;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.springframework.beans.BeansException;\r
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;\r
+import org.springframework.beans.factory.support.RootBeanDefinition;\r
+\r
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @date 29.09.2011\r
+ *\r
+ */\r
+public class RemotingMonitoredListableBeanFactory extends DefaultListableBeanFactory {\r
+       @SuppressWarnings("unused")\r
+       private static final Logger logger = Logger.getLogger(RemotingMonitoredListableBeanFactory.class);\r
+       \r
+       private boolean isInitializingBeans = false;\r
+       private IProgressMonitor currentMonitor;\r
+       \r
+       private static List<String> beansToMonitor = Arrays.asList("sessionFactory","defaultBeanInitializer","persistentTermInitializer");\r
+       private Set<String> alreadyMonitoredBeans = new HashSet<String>();\r
+\r
+       public RemotingMonitoredListableBeanFactory(){\r
+       }\r
+       \r
+//     @Override\r
+//     protected RootBeanDefinition getMergedLocalBeanDefinition(String beanName) throws BeansException {\r
+//             if (registeredBeanNames.contains(beanName)){\r
+//                     return super.getMergedLocalBeanDefinition(beanName);\r
+//                             \r
+//             }\r
+////           String message = "Handle bean '%s'";\r
+////           message = String.format(message, beanName);\r
+////           currentMonitor.subTask(message);\r
+//             RootBeanDefinition result = super.getMergedLocalBeanDefinition(beanName);\r
+////           currentMonitor.worked(1);\r
+////           registeredBeanNames.add(beanName);\r
+//             return result;\r
+//     }\r
+       \r
+       public void preInstantiateSingletons() throws BeansException {\r
+               isInitializingBeans = true;\r
+               checkMonitorCancelled(currentMonitor);\r
+               int countBeans = 0;\r
+               for (String beanName : getBeanDefinitionNames()) {\r
+                       RootBeanDefinition bd = getMergedLocalBeanDefinition(beanName);\r
+                       if (!bd.isAbstract() && bd.isSingleton() && !bd.isLazyInit() && beansToMonitor.contains(beanName) ){\r
+                               countBeans++;\r
+                       }\r
+               }\r
+               String message = "preinstantiate singletons";\r
+               currentMonitor.beginTask(message, countBeans);\r
+               super.preInstantiateSingletons();\r
+               isInitializingBeans = false;\r
+               currentMonitor.done();\r
+       }\r
+\r
+//     protected <T> T doGetBean(final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly){\r
+//             boolean doMonitor = isInitializingBeans && !monitoredBeanNames.contains(name);\r
+//             if (doMonitor){\r
+//                     String message = "Handle bean '%s'";\r
+//                     message = String.format(message, name);\r
+//                     currentMonitor.subTask(message);\r
+//                     monitoredBeanNames.add(name);\r
+//             }\r
+//             T result = super.doGetBean(name, requiredType, args, typeCheckOnly);\r
+//             if (doMonitor){\r
+//                     currentMonitor.worked(1);\r
+//             }\r
+//             return result;\r
+//     }\r
+       \r
+       protected Object createBean(final String name, final RootBeanDefinition mbd, final Object[] args){\r
+               boolean doMonitor = isInitializingBeans && beansToMonitor.contains(name) && !alreadyMonitoredBeans.contains(name);\r
+               checkMonitorCancelled(currentMonitor);\r
+               if (doMonitor){\r
+                       String message;\r
+                       if (name.equals("sessionFactory")){\r
+                               message = "Initializing persistence context ...";\r
+                       }else if(name.equals("persistentTermInitializer")){\r
+                               message = "Loading terms ...";\r
+                       }else{\r
+                               message = "Handling '%s'";\r
+                               message = String.format(message, name);\r
+                       }\r
+                       currentMonitor.subTask(message);\r
+                       alreadyMonitoredBeans.add(name);\r
+               }\r
+               Object result = super.createBean(name, mbd, args);\r
+               if (doMonitor){\r
+                       checkMonitorCancelled(currentMonitor);\r
+                       currentMonitor.worked(1);\r
+               }\r
+               return result;\r
+       }\r
+\r
+       \r
+       /**\r
+        * @param mainMonitor the mainMonitor to set\r
+        */\r
+       public void setCurrentMonitor(IProgressMonitor monitor) {\r
+               this.currentMonitor = monitor;\r
+       }\r
+       \r
+       private void checkMonitorCancelled(IProgressMonitor monitor) {\r
+               if (monitor != null && monitor.isCanceled()){\r
+                       throw new CancellationException();\r
+               }       \r
+       }\r
+               \r
+}\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CachedCommonServiceImpl.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CachedCommonServiceImpl.java
new file mode 100644 (file)
index 0000000..e7b6c6d
--- /dev/null
@@ -0,0 +1,189 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.cache;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.hibernate.collection.internal.PersistentList;
+import org.hibernate.collection.internal.PersistentMap;
+import org.hibernate.collection.internal.PersistentSet;
+import org.hibernate.collection.internal.PersistentSortedMap;
+import org.hibernate.collection.internal.PersistentSortedSet;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.PersistentMultiLanguageText;
+import eu.etaxonomy.taxeditor.remoting.CdmRemotingException;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher.CollectionType;;
+
+/**
+ * @author cmathew
+ * @date 14 Oct 2014
+ *
+ */
+@Component
+public class CachedCommonServiceImpl implements ICachedCommonService {
+
+
+    @Autowired
+    private ICommonService commonService;
+
+    private static boolean cacheEnabled = true;
+
+    @Autowired
+    private ICdmEntitySessionManager cdmEntitySessionManager;
+
+
+    public static boolean isCacheEnabled() {
+        return cacheEnabled;
+    }
+
+    public static void setCacheEnabled(boolean cacheEnabled) {
+        CachedCommonServiceImpl.cacheEnabled = cacheEnabled;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#find(java.lang.Class, int)
+     */
+    @Override
+    public CdmBase find(Class<? extends CdmBase> clazz, int id) {
+        if(cacheEnabled) {
+            CdmBase cdmEntity = CdmBase.deproxy(commonService.find(clazz, id),clazz);
+            return cdmEntitySessionManager.load(cdmEntity);
+        } else {
+            return CdmBase.deproxy(commonService.find(clazz, id),clazz);
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#initializeCollection(org.hibernate.collection.spi.PersistentCollection)
+     */
+    @Override
+    public PersistentCollection initializeCollection(PersistentCollection col) {
+            PersistentCollection pc = commonService.initializeCollection(col);
+            return pc;
+    }
+
+    @Override
+    public void updatePersistentCollection(CollectionField colf) {
+       if(cacheEnabled) {
+               cdmEntitySessionManager.load(colf.getCollection());
+       }
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#isEmpty(org.hibernate.collection.spi.PersistentCollection)
+     */
+    @Override
+    public boolean isEmpty(PersistentCollection col) {
+            return commonService.isEmpty(col);
+
+    }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#size(org.hibernate.collection.spi.PersistentCollection)
+     */
+    @Override
+    public int size(PersistentCollection col) {
+        return commonService.size(col);
+    }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#get(org.hibernate.collection.spi.PersistentCollection, int)
+     */
+    @Override
+    public Object get(PersistentCollection col, int index) {
+        return commonService.get(col, index);
+    }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#contains(org.hibernate.collection.spi.PersistentCollection, java.lang.Object)
+     */
+    @Override
+    public boolean contains(PersistentCollection col, Object element) {
+        return commonService.contains(col, element);
+    }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#containsKey(org.hibernate.collection.spi.PersistentCollection, java.lang.Object)
+     */
+    @Override
+    public boolean containsKey(PersistentCollection col, Object key) {
+        return commonService.containsKey(col, key);
+    }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.remoting.service.ICachedCommonService#containsValue(org.hibernate.collection.spi.PersistentCollection, java.lang.Object)
+     */
+    @Override
+    public boolean containsValue(PersistentCollection col, Object element) {
+        return commonService.containsValue(col, element);
+    }
+
+    @SuppressWarnings("rawtypes")
+       @Override
+    public CollectionField getCollectionField(PersistentCollection pc) {
+        if(pc != null) {
+            if(pc instanceof PersistentSet) {
+                return new CollectionField(new HashSet((Set)pc), CollectionType.SET);
+            }
+            if(pc instanceof PersistentSortedSet) {
+                return new CollectionField(new TreeSet((Set)pc), CollectionType.SET);
+            }
+            if(pc instanceof PersistentList) {
+                return new CollectionField(new ArrayList((List)pc), CollectionType.LIST);
+            }
+            if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
+                return new CollectionField(new HashMap((Map)pc), CollectionType.MAP);
+            }
+            if(pc instanceof PersistentSortedMap) {
+                return new CollectionField(new TreeMap((Map)pc), CollectionType.MAP);
+            }
+            throw new CdmRemotingException("Cannot get Collection field for type " + pc.getClass().getName());
+        }
+        return null;
+    }
+
+    public class CollectionField {
+        private final Object col;
+        private final CollectionType type;
+        public CollectionField(Object col, CollectionType type) {
+            this.col = col;
+            this.type = type;
+        }
+
+        public Object getCollection() {
+            return this.col;
+        }
+
+        public CollectionType getType() {
+            return this.type;
+        }
+    }
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmClientCacheException.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmClientCacheException.java
new file mode 100644 (file)
index 0000000..3b7edba
--- /dev/null
@@ -0,0 +1,12 @@
+package eu.etaxonomy.cdm.api.cache;
+
+public class CdmClientCacheException extends RuntimeException {
+       
+       public CdmClientCacheException(String message) {
+               super(message);
+       }
+
+       public CdmClientCacheException(Exception e) {
+               super(e);
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmEntityCacheKey.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmEntityCacheKey.java
new file mode 100644 (file)
index 0000000..476522a
--- /dev/null
@@ -0,0 +1,56 @@
+package eu.etaxonomy.cdm.api.cache;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+public class CdmEntityCacheKey {
+
+       private Class<? extends CdmBase> persistenceClass;
+       private int persistenceId;
+       
+       public CdmEntityCacheKey(CdmBase cdmBase) {
+               this.persistenceClass = cdmBase.getClass();
+               this.persistenceId = cdmBase.getId();
+       }
+       
+       public CdmEntityCacheKey(Class<? extends CdmBase> clazz, int id) {
+               this.persistenceClass = clazz;
+               this.persistenceId = id;
+       }
+       
+
+       
+       public Class<? extends CdmBase> getPersistenceClass() {
+               return persistenceClass;
+       }
+       
+       public int getPersistenceId() {
+               return persistenceId;
+       }
+       @Override
+       public boolean equals(Object obj) {
+               if(obj == null || !(obj instanceof CdmEntityCacheKey)) {
+                       return false;
+               }
+               
+               if(this == obj) {
+                       return true;
+               }
+               CdmEntityCacheKey that = (CdmEntityCacheKey) obj;
+               if(this.persistenceClass.equals(that.persistenceClass) && this.persistenceId == that.persistenceId) {
+                       return true;
+               }
+               
+               return false;
+       }
+       
+       @Override
+       public int hashCode() {
+               return (this.persistenceClass.getName() + String.valueOf(this.persistenceId)).hashCode();
+       }
+       
+       @Override
+       public String toString() {
+               return this.persistenceClass.getName() + String.valueOf(this.persistenceId);
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelCacher.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelCacher.java
new file mode 100644 (file)
index 0000000..baba3fb
--- /dev/null
@@ -0,0 +1,184 @@
+package eu.etaxonomy.cdm.api.cache;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+
+import org.apache.log4j.Logger;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.mapping.PersistentClass;
+import org.hibernate.mapping.Property;
+import org.hibernate.property.Getter;
+
+
+public class CdmModelCacher {
+
+
+       private static final Logger logger = Logger.getLogger(CdmModelCacher.class);
+
+       private List<CdmModelFieldPropertyFromClass> cmgmfcList = new ArrayList<CdmModelFieldPropertyFromClass>();
+
+       public void cacheGetters() {
+
+               Configuration configuration = new Configuration().configure("/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml");
+               configuration.buildMappings();
+               Iterator<PersistentClass> classMappingIterator = configuration.getClassMappings();                        
+
+               Cache cache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+               cache.removeAll();
+
+               while(classMappingIterator.hasNext()) {
+                       PersistentClass persistentClass = classMappingIterator.next();
+                       Class mappedClass = persistentClass.getMappedClass();
+                       String mappedClassName = mappedClass.getName();
+
+                       CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName);
+                       Iterator propertyIt = persistentClass.getPropertyIterator();       
+
+                       logger.info("Adding class : " + mappedClassName + " to cache");
+                                               
+                       while(propertyIt.hasNext())
+                       {
+                               Property property = (Property)propertyIt.next();
+                               Getter getter = property.getGetter(mappedClass);              
+                               if(getter != null && getter.getMember() != null) {         
+                                       Field field = (Field)getter.getMember();
+                                       String getMethod = getMethodNameFromFieldName(field.getName(), field.getType().getName());                                      
+                                       logger.info(" - getMethod : " + getMethod + " for type " + field.getType().getName());
+                                       cmgmfc.addGetMethods(getMethod);
+                               }
+                       }
+                       cache.put(new Element(mappedClassName, cmgmfc));
+
+               }
+               cache.flush();
+       }
+       
+       public void cacheGetterFields() {
+
+               Configuration configuration = new Configuration().configure("/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml");
+               configuration.buildMappings();
+               Iterator<PersistentClass> classMappingIterator =   configuration.getClassMappings();                      
+
+               Cache cache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+               cache.removeAll();
+
+               while(classMappingIterator.hasNext()) {
+                       PersistentClass persistentClass = classMappingIterator.next();
+                       Class mappedClass = persistentClass.getMappedClass();
+                       String mappedClassName = mappedClass.getName();
+
+                       CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName);
+                       Iterator propertyIt = persistentClass.getPropertyIterator();       
+
+                       logger.info("Adding class : " + mappedClassName + " to cache");
+                                               
+                       while(propertyIt.hasNext())
+                       {
+                               Property property = (Property)propertyIt.next();
+                               Getter getter = property.getGetter(mappedClass);              
+                               if(getter != null && getter.getMember() != null) {         
+                                       Field field = (Field)getter.getMember();
+                                       //String getMethod = getMethodNameFromFieldName(field.getName(), field.getType().getName());                                    
+                                       logger.info(" - contains field '" + field.getName() + "' of type '" + field.getType().getName() + "'");
+                                       cmgmfc.addGetMethods(field.getName());
+                               }
+                       }
+                       cache.put(new Element(mappedClassName, cmgmfc));
+
+               }
+               cache.flush();
+       }
+       
+       public void checkGetterMethods() {
+
+               Configuration configuration = new Configuration().configure("/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml");
+               configuration.buildMappings();
+               Iterator<PersistentClass> classMappingIterator =   configuration.getClassMappings();                      
+
+               Cache cache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+               cache.removeAll();
+
+               while(classMappingIterator.hasNext()) {
+                       PersistentClass persistentClass = classMappingIterator.next();
+                       Class mappedClass = persistentClass.getMappedClass();
+                       String mappedClassName = mappedClass.getName();
+                       
+                       Iterator propertyIt = persistentClass.getPropertyIterator();       
+                       
+                       Method[] methods = mappedClass.getMethods();
+
+                       while(propertyIt.hasNext())
+                       {
+                               Property property = (Property)propertyIt.next();
+                               Getter getter = property.getGetter(mappedClass);              
+                               if(getter != null && getter.getMember() != null) {         
+                                       Field field = (Field)getter.getMember();
+                                       String getMethod = getMethodNameFromFieldName(field.getName(), field.getType().getName());                                      
+                                       
+                                       boolean foundMethod = false;
+                                       for(Method method : methods) {
+                                               if(method.getName().equals(getMethod)) {
+                                                       foundMethod = true;
+                                                       break;
+                                               }
+                                       }
+                                       if(!foundMethod) {
+                                               logger.info("Inferred method " + getMethod + " does not exist in class " + mappedClassName);
+                                               //throw new CdmClientCacheException("Inferred method " + getMethod + " does not exist in class " + mappedClassName);
+                                       }
+                               }
+                       }
+                       
+
+               }
+               
+       }
+
+       public List<CdmModelFieldPropertyFromClass> getCdmModelGetMethodFromClassList() {
+               cmgmfcList.clear();
+               Configuration configuration = new Configuration().configure("/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml");
+               configuration.buildMappings();
+               Iterator<PersistentClass> classMappingIterator =   configuration.getClassMappings();                                                             
+
+               while(classMappingIterator.hasNext()) {
+                       PersistentClass persistentClass = classMappingIterator.next();
+                       Class mappedClass = persistentClass.getMappedClass();
+                       String mappedClassName = mappedClass.getName();
+
+                       CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName);
+                       Iterator propertyIt = persistentClass.getPropertyIterator();       
+
+                       while(propertyIt.hasNext())
+                       {
+                               Property property = (Property)propertyIt.next();
+                               Getter getter = property.getGetter(mappedClass);              
+                               if(getter != null && getter.getMember() != null) {      
+                                       Field field = (Field)getter.getMember();
+                                       String getMethod = getMethodNameFromFieldName(getter.getMember().getName(),field.getType().getName());                   
+                                       cmgmfc.addGetMethods(getMethod);
+                               }
+                       }
+                       cmgmfcList.add(cmgmfc);
+               }
+               return cmgmfcList;
+
+       }
+
+       public static String getMethodNameFromFieldName(String fieldName, String type) {
+               String prefix = type != null && type.toLowerCase().endsWith("boolean") ? "is" : "get";          
+               String getMethod =  prefix + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
+               return getMethod;
+       }
+       
+
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelFieldPropertyFromClass.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmModelFieldPropertyFromClass.java
new file mode 100644 (file)
index 0000000..37cb812
--- /dev/null
@@ -0,0 +1,51 @@
+package eu.etaxonomy.cdm.api.cache;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CdmModelFieldPropertyFromClass implements Serializable {
+
+       private static final long serialVersionUID = 5726395976531887526L;
+       private String className;
+       private String parentClassName;
+       
+       private List<String> fields = new ArrayList<String>();
+       
+       
+       public CdmModelFieldPropertyFromClass(String className) {
+               this.setClassName(className);
+       }
+       
+       public String getParentClassName() {
+               return parentClassName;
+       }
+
+       public void setParentClassName(String parentClassName) {
+               this.parentClassName = parentClassName;
+       }
+
+       public List<String> getFields() {
+               return fields;
+       }
+
+       public void setFields(List<String> fields) {
+               this.fields = fields;
+       }
+       
+       public void addGetMethods(String getMethod) {
+               this.fields.add(getMethod);
+       }
+
+       public String getClassName() {
+               return className;
+       }
+
+       public void setClassName(String className) {
+               this.className = className;
+       }
+       
+
+       
+       
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmRemoteCacheManager.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmRemoteCacheManager.java
new file mode 100644 (file)
index 0000000..592e67e
--- /dev/null
@@ -0,0 +1,84 @@
+package eu.etaxonomy.cdm.api.cache;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheException;
+import net.sf.ehcache.CacheManager;
+
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+
+
+public class CdmRemoteCacheManager {   
+       
+       private CacheManager cdmlibModelCacheManager;
+       
+       private static CdmRemoteCacheManager cdmRemoteCacheManager = null;
+       
+    public static final Resource CDMLIB_CACHE_MANAGER_CONFIG_RESOURCE =
+            new ClassPathResource("cdmlib-ehcache.xml");
+    
+       
+    public enum CdmCacheManagerType {
+       CDMLIB_MODEL,
+       DEFAULT
+    }
+
+    public static CdmRemoteCacheManager getInstance(){
+       if(cdmRemoteCacheManager == null) {             
+               cdmRemoteCacheManager = new CdmRemoteCacheManager();            
+       }
+       return cdmRemoteCacheManager;
+    }
+    private CdmRemoteCacheManager() {
+       
+       System.setProperty("ehcache.disk.store.dir", CdmUtils.getCdmHomeDir().getAbsolutePath() + File.separator + "cdmlib-model");                     
+       try {
+               // NOTE:Programmatically creating the cache manager may solve the problem of 
+               //      recreating data written to disk on startup
+               //      see https://stackoverflow.com/questions/1729605/ehcache-persist-to-disk-issues
+               //String cacheFilePath = CDMLIB_CACHE_MANAGER_CONFIG_RESOURCE.getFile().getAbsolutePath();
+               InputStream in = this.getClass().getClassLoader().getResourceAsStream("cdmlib-ehcache.xml");
+                       cdmlibModelCacheManager = new CacheManager(in);
+                       
+               } catch (CacheException e) {
+                       throw new CdmClientCacheException(e);
+               }
+//             } catch (IOException e) {
+//                     throw new CdmClientCacheException(e);
+//             }
+    }
+    
+       public Cache getCdmModelGetMethodsCache(){
+               return cdmlibModelCacheManager.getCache("cdmModelGetMethodsCache");
+       }
+       
+       public void shutdown(CdmCacheManagerType ccmt) {
+               CacheManager cm;
+               switch(ccmt) {          
+               case CDMLIB_MODEL:                      
+                       cdmlibModelCacheManager.shutdown();
+                       break;
+               case DEFAULT:
+                       cm = CacheManager.create();
+                       cm.shutdown();
+                       break;
+               default:
+                       //do nothing
+               }               
+       }
+       
+       public static void checkCacheProperties() {
+               String pathToCache = System.getProperty("ehcache.disk.store.dir");
+               if(pathToCache == null || pathToCache.isEmpty()) {
+                       throw new CdmClientCacheException("'ehcache.disk.store.dir' property is not set");
+               }
+       }
+
+}
index f122d18eb3dc948b16be3a74afea317ebdf08f2a..db7d0ed79b6a31ec66edcca30b0e755738ab38a4 100644 (file)
@@ -5,6 +5,7 @@ import java.util.UUID;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import eu.etaxonomy.cdm.api.cache.CdmCacher;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
@@ -20,23 +21,20 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  * @param <T>
  */
 @Component
-public class CdmServiceCacher<T extends CdmBase> extends CdmCacher<T> {
+public class CdmServiceCacher extends CdmCacher {
 
        @Autowired
        ITermService termService;
-
+       
        @Override
-       protected T findByUuid(UUID uuid) {
-               return (T)termService.findWithoutFlush(uuid);
+       protected void setup() {
+               CdmTransientEntityCacher.setDefaultCacher(this);                
+       }
+       
+       @Override
+       protected CdmBase findByUuid(UUID uuid) {
+               CdmBase term = termService.findWithoutFlush(uuid);
+               return term;
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.cache.CdmCacher#setup()
-     */
-    @Override
-    protected void setup() {
-        // TODO Auto-generated method stub
-
-    }
 
 }
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmTransientEntityCacher.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmTransientEntityCacher.java
new file mode 100644 (file)
index 0000000..dc349a3
--- /dev/null
@@ -0,0 +1,506 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.cdm.api.cache;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import javassist.util.proxy.ProxyFactory;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+import net.sf.ehcache.config.CacheConfiguration;
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
+
+import org.apache.log4j.Logger;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ReflectionUtils;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+
+/**
+ * 
+ * This cache guarantees that
+ *  - all objects put will be ancestors of CdmBase
+ *  - all CdmBase objects in the cache will be already de-proxied
+ *  - after any CdmBase object is put in the cache, 
+ *  all non-null / non-proxy CdmBase objects in the sub-graph 
+ *  will also be present in the cache.
+ *   
+ * @author cmathew
+ * @date 14 Oct 2014
+ *
+ */
+
+public class CdmTransientEntityCacher  {
+
+       private static final Logger logger = Logger.getLogger(CdmTransientEntityCacher.class);
+
+    
+    private ICdmEntitySessionManager cdmEntitySessionManager;
+    
+       private static CdmServiceCacher cdmServiceCacher;
+    
+       private String cacheId;
+
+       private Cache cache; 
+
+       private Cache cdmlibModelCache;
+
+       private static boolean isRecursiveEnabled = true;
+
+    public static enum CollectionType {
+        SET,
+        LIST,
+        MAP;
+
+        @Override
+        public String toString() {
+            return this.name().toLowerCase();
+        }
+    }
+    
+       private CdmTransientEntityCacher() {
+               
+       }
+       
+       public CdmTransientEntityCacher(String cacheId, ICdmEntitySessionManager cdmEntitySessionManager) {
+               this.cacheId = cacheId;
+
+               cache = new Cache(getEntityCacheConfiguration(cacheId));                
+               cdmServiceCacher.getDefaultCacheManager().addCache(cache);
+
+               cdmlibModelCache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+               this.cdmEntitySessionManager = cdmEntitySessionManager;
+       }
+
+       public CdmTransientEntityCacher(Object obj, ICdmEntitySessionManager cdmEntitySessionManager) {
+               this(obj.getClass().getName() +  String.valueOf(obj.hashCode()), cdmEntitySessionManager);
+       }
+
+       /**
+        * Returns the default cache configuration.
+        *
+        * @return
+        */
+       private CacheConfiguration getEntityCacheConfiguration(String cacheId) {
+               // For a better understanding on how to size caches, refer to
+               // http://ehcache.org/documentation/configuration/cache-size
+               return new CacheConfiguration(cacheId, 500)        
+               .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU)
+               .eternal(false)
+               // default ttl and tti set to 2 hours
+               .timeToLiveSeconds(60*60*2)
+               .timeToIdleSeconds(60*60*2);
+
+       }
+
+       public static void setDefaultCacher(CdmServiceCacher css) {
+               cdmServiceCacher = css;
+       }
+       
+       /**
+        * Returns the cache corresponding to the cache id
+        *
+        * @param cacheId
+        * @return
+        */
+       private Cache getCache() {
+               return cdmServiceCacher.getDefaultCacheManager().getCache(cacheId);
+       }
+
+       @SuppressWarnings("unchecked")
+       public <T extends Object> T load(T obj, boolean recursive) {
+               if(obj instanceof CdmBase) {
+                       return load(obj, recursive);
+               } else if (obj instanceof Map) {
+                       return (T) load((Map<T,T>)obj, recursive);
+               } else if (obj instanceof Collection) {
+                       return (T) load((Collection<T>)obj, recursive);
+               } 
+               
+               return obj;
+       }
+       
+       @SuppressWarnings("unchecked")
+       private <T extends Object> T loadRecursive(T obj, Set<CdmBase> alreadyVisitedEntities) {
+               if(obj instanceof CdmBase) {
+                       return (T) loadRecursive((CdmBase)obj, alreadyVisitedEntities);
+               } else if (obj instanceof Map) {
+                       return (T) load((Map<T,T>)obj, alreadyVisitedEntities);
+               } else if (obj instanceof Collection) {
+                       return (T) load((Collection<T>)obj, alreadyVisitedEntities);
+               } 
+               
+               logger.info("No caching yet for type " + obj.getClass().getName());
+               
+               return obj;
+       }
+       
+       public <T extends Object> Map<T,T> load(Map<T,T> map, boolean recursive){
+               if(isRecursiveEnabled && recursive) {
+                       logger.info("---- starting recursive load for cdm entity map");
+                       Set<CdmBase> alreadyVisitedEntities = new HashSet<CdmBase>();
+                       Map<T,T> cachedMap = load(map, alreadyVisitedEntities);
+                       alreadyVisitedEntities.clear();
+                       logger.info("---- ending recursive load for cdm entity map \n");
+                       return cachedMap;
+               } else {
+                       return load(map, null);
+               }
+       }
+       
+
+       private <T extends Object> Map<T,T> load(Map<T,T> map, Set<CdmBase> alreadyVisitedEntities){
+        if(map == null || map.isEmpty()) {
+            return map;
+        }
+
+        int originalMapSize = map.size();
+        Object[] result = new Object[ map.size() * 2 ];
+        Iterator<Map.Entry<T,T>> iter = map.entrySet().iterator();
+        int i=0;
+        while ( iter.hasNext() ) {
+            Map.Entry<T,T> e = (Map.Entry<T,T>) iter.next();
+            result[i++] = e.getKey();
+            result[i++] = e.getValue();
+        }
+
+        for(i=0; i<result.length;i++) {            
+               if(alreadyVisitedEntities == null) {
+                       result[i] = load(result[i], false);
+               } else {                              
+                       result[i] = loadRecursive(result[i], alreadyVisitedEntities);
+               }
+        }
+        map.clear();
+        for(i = 0; i < originalMapSize; i+=2 ) {
+            map.put(
+                    (T)result[i],
+                    (T)result[i+1]
+                );
+        }
+        return map;
+       }
+       
+       public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive){
+               Collection<T> loadedCollection;
+               if(isRecursiveEnabled && recursive) {
+                       logger.info("---- starting recursive load for cdm entity collection");
+                       Set<CdmBase> alreadyVisitedEntities = new HashSet<CdmBase>();
+                       Collection<T> cachedCollection = load(collection, alreadyVisitedEntities);
+                       alreadyVisitedEntities.clear();
+                       logger.info("---- ending recursive load for cdm entity collection \n");
+                       loadedCollection = cachedCollection;
+               } else {
+                       loadedCollection = load(collection, null);
+               }
+               cdmEntitySessionManager.addRootEntities(loadedCollection);
+               return loadedCollection;
+       }
+       
+       @SuppressWarnings("unchecked")
+       private <T extends Object> Collection<T> load(Collection<T> collection, Set<CdmBase> alreadyVisitedEntities){
+               int length = collection.size();
+               Object[] result = new Object[length];
+               Iterator<T> collectionItr = collection.iterator();
+               int count = 0;
+               while(collectionItr.hasNext()) {
+                       if(alreadyVisitedEntities == null) {
+                       result[count] = load(collectionItr.next(), false);
+               } else {                              
+                       result[count] = loadRecursive(collectionItr.next(), alreadyVisitedEntities);
+               }       
+                       count++;
+               }
+               
+               collection.clear();
+                                               
+               for ( int i = 0; i < length; i++ ) {
+                       collection.add((T)result[i]);
+               }
+               
+               return collection;
+       }
+
+       
+       /**
+        * Puts the (Key,Value) pair of ({@link java.util.UUID}, {@link eu.etaxonomy.cdm.model.common.CdmBase}),
+        * in the cache corresponding to the given cache id
+        *
+        * @param cacheId
+        * @param uuid
+        * @param cdmEntity
+        */
+       public CdmBase load(CdmBase cdmEntity, boolean recursive) {             
+               CdmBase loadedCdmBase;
+               if(isRecursiveEnabled && recursive) {
+                       logger.info("---- starting recursive load for cdm entity " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId());
+                       Set<CdmBase> alreadyVisitedEntities = new HashSet<CdmBase>();
+                       CdmBase cb =  loadRecursive(cdmEntity, alreadyVisitedEntities);
+                       alreadyVisitedEntities.clear();
+                       logger.info("---- ending recursive load for cdm entity " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + "\n");
+                       loadedCdmBase =  cb;
+               } else {
+                       loadedCdmBase = load(cdmEntity);
+               }
+               cdmEntitySessionManager.addRootEntity(loadedCdmBase);
+               return loadedCdmBase;
+               
+       }
+
+       
+       private CdmBase load(CdmBase cdmEntity) {
+               logger.info("loading object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId());
+
+               // start by looking up the cdm entity in the cache
+               CdmBase cachedCdmEntity = getFromCache(cdmEntity);
+               
+               if(cachedCdmEntity != null) {
+                       // if cdm entity was found in cache then return ...
+                       logger.info(" - object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + " already exists");
+                       return cachedCdmEntity;
+               } else {                
+                       // ... else save the entity in the cache        
+                       getCache().put(new Element(generateKey(cdmEntity), cdmEntity));
+                       logger.info(" - object of type " + cdmEntity.getClass().getName() + " with id " + cdmEntity.getId() + " put in cache");
+                       return cdmEntity;
+               }         
+       }
+       
+       private CdmBase loadRecursive(CdmBase cdmEntity, Set<CdmBase> alreadyVisitedEntities) {
+
+               CdmBase cachedCdmEntity = load(cdmEntity);
+               
+               // we want to recursive through the cdmEntity (and not the cachedCdmEntity)
+               // since there could be new initialized object in the cdmEntity sub-graph
+               
+               // start by getting the fields from the cdm entity
+               String className = cdmEntity.getClass().getName();
+               CdmModelFieldPropertyFromClass cmgmfc = getFromCdmlibModelCache(className);
+               if(cmgmfc != null) {
+                       alreadyVisitedEntities.add(cdmEntity);
+                       List<String> fields = cmgmfc.getFields();
+                       for(String field : fields) {
+                               // retrieve the actual object corresponding to the field.
+                               // this object will be either a CdmBase or a Collection / Map
+                               // with CdmBase as the generic type
+
+                               // In the case that the returned is either a Collection or a Map
+                               // the individual objects inside these also need to be loaded
+                               // by calling the corresponding cachify method in the
+                               // CdmEntityCachingUtils   
+
+                               CdmBase cdmEntityInSubGraph = getCdmBaseTypeFieldValue(cdmEntity, cachedCdmEntity, field, alreadyVisitedEntities);
+                               if(cdmEntityInSubGraph != null) {
+                                       if(!alreadyVisitedEntities.contains(cdmEntityInSubGraph)) {                                                                                             
+                                               logger.info("recursive loading object of type " + cdmEntityInSubGraph.getClass().getName() + " with id " + cdmEntityInSubGraph.getId());
+                                               loadRecursive(cdmEntityInSubGraph, alreadyVisitedEntities);
+                                       } else {
+                                               logger.info("object of type " + cdmEntityInSubGraph.getClass().getName() + " with id " + cdmEntityInSubGraph.getId() + "already visited");
+                                       }
+                               }
+                       }
+               } else {
+                       throw new CdmClientCacheException("CdmEntity with class " + cdmEntity.getClass().getName() + " is not found in the cdmlib model cache. " +
+                                       "The cache may be corrupted or not in sync with the latest model version" );
+               }
+               return cachedCdmEntity;
+       }
+
+       
+       private CdmBase getCdmBaseTypeFieldValue(CdmBase cdmEntity, 
+                       CdmBase cachedCdmEntity, 
+                       String fieldName,
+                       Set<CdmBase> alreadyVisitedEntities) {
+               
+               
+               if(cachedCdmEntity == null) {
+                       throw new CdmClientCacheException("When trying to set field value, the cached cdm entity cannot be null");
+               }
+               
+               Class<?> clazz = cdmEntity.getClass();
+               try {
+                       // this call will search in the provided class as well as
+                       // the super classes until it finds the field
+                       Field field = ReflectionUtils.findField(clazz, fieldName);
+
+                       if(field == null) {
+                               throw new CdmClientCacheException("Field '" + fieldName 
+                                               + "' not found when searching in class '" + clazz.getName() + "' and its supercalsses");
+                       }
+                       field.setAccessible(true);
+                       Object o = field.get(cdmEntity);
+
+                       CdmBase cdmEntityInSubGraph = null;
+                       if(o != null 
+                                       && !ProxyFactory.isProxyClass(o.getClass()) 
+                                       && !(o instanceof PersistentCollection) ) {
+
+                               
+                               if(CdmBase.class.isAssignableFrom(o.getClass())) {
+                                       logger.info("found initialised cdm entity '" + fieldName + "' in object of type " + clazz.getName() + " with id " + cdmEntity.getId());
+                                       cdmEntityInSubGraph  = (CdmBase)o;
+                                       CdmBase cachedCdmEntityInSubGraph = getFromCache(cdmEntityInSubGraph);
+
+                                       if(cachedCdmEntityInSubGraph != null) {
+                                               if(cachedCdmEntityInSubGraph != cdmEntityInSubGraph) {                          
+                                                       field.set(cachedCdmEntity, cachedCdmEntityInSubGraph);
+                                               }
+                                       } else {
+                                               field.set(cachedCdmEntity, cdmEntityInSubGraph);
+                                       }
+                               } else if(o instanceof Map) {
+                                       loadRecursive((Map)o, alreadyVisitedEntities);
+                               } else if(o instanceof Collection) {
+                                       loadRecursive((Collection)o, alreadyVisitedEntities);
+                               }
+                       } 
+                       // we return the original cdm entity in the sub graph because we
+                       // want to continue to recurse on the input cdm entity graph
+                       // and not the one in the cache
+                       return cdmEntityInSubGraph;
+               } catch (SecurityException e) {
+                       throw new CdmClientCacheException(e);
+               } catch (IllegalArgumentException e) {
+                       throw new CdmClientCacheException(e);
+               } catch (IllegalAccessException e) {
+                       throw new CdmClientCacheException(e);
+               }        
+       }
+
+       public void put(CdmBase cdmEntity) {            
+               CdmEntityCacheKey id = new CdmEntityCacheKey(cdmEntity);
+               Element cachedCdmEntityElement = getCacheElement(id);
+
+               if(cachedCdmEntityElement == null) {
+                       cachedCdmEntityElement = cdmServiceCacher.getCacheElement(cdmEntity.getUuid());
+                       if(cachedCdmEntityElement != null) {
+                               logger.info("Cdm Entity with id : " + cdmEntity.getId() + " already exists in permanent cache. Ignoring put.");
+                               return;
+                       }
+               }
+               
+               getCache().put(new Element(id, cdmEntity));       
+       }
+
+
+       private Element getCacheElement(CdmEntityCacheKey key) {
+               return getCache().get(key);
+       }
+
+       public CdmModelFieldPropertyFromClass getFromCdmlibModelCache(String className) {
+               Element e = cdmlibModelCache.get(className);
+               if (e == null) {
+                       return null;
+               } else {
+                       return (CdmModelFieldPropertyFromClass) e.getObjectValue();
+               }
+       }
+
+       public CdmBase getFromCache(CdmEntityCacheKey id) {
+               Element e = getCacheElement(id);
+               if (e == null) {
+                       return null;
+               } else {
+                       return (CdmBase) e.getObjectValue();
+               }
+       }
+
+       public CdmBase getFromCache(Class<? extends CdmBase> clazz, int id) {
+               CdmEntityCacheKey cacheId = generateKey(clazz,id);
+               return getFromCache(cacheId);
+       }
+
+       public CdmBase getFromCache(CdmBase cdmBase) {
+               
+               CdmEntityCacheKey cacheId = generateKey(cdmBase);
+               CdmBase cachedCdmEntity = getFromCache(cacheId);
+
+               if(cachedCdmEntity == null) {
+                       // ... then try the permanent (uuid-based) cache
+                       cachedCdmEntity = cdmServiceCacher.getFromCache(cdmBase.getUuid());             
+               }
+
+               return cachedCdmEntity;
+       }
+       
+       public CdmBase getFromCache(CdmBase cdmBase, Class<? extends CdmBase> clazz) {
+               
+               cdmBase = CdmBase.deproxy(cdmBase, clazz);              
+               CdmEntityCacheKey cacheId = generateKey(cdmBase);
+
+               CdmBase cachedCdmEntity = getFromCache(cacheId);
+
+               if(cachedCdmEntity == null) {
+                       // ... then try the permanent (uuid-based) cache
+                       cachedCdmEntity = cdmServiceCacher.getFromCache(cdmBase.getUuid());             
+               }
+
+               return cachedCdmEntity;
+       }
+
+       public List<CdmBase> getAllEntities() {
+               List<CdmBase> entities = new ArrayList<CdmBase>();
+               Map<String, CdmBase> elementsMap = getCache().getAllWithLoader(getCache().getKeys(), null);
+               for (Map.Entry<String, CdmBase> entry : elementsMap.entrySet()) {
+                       entities.add(entry.getValue());
+               }
+               return entities;
+       }
+
+       public boolean exists(CdmEntityCacheKey key) {
+               return (getCacheElement(key) != null);
+       }
+
+       public boolean existsAndIsNotNull(CdmEntityCacheKey id) {
+               return getFromCache(id) != null;
+       }
+       
+       public void dispose() {
+               cache.removeAll();
+               cache.flush();
+       }
+
+
+       public static CdmEntityCacheKey generateKey(Class<? extends CdmBase> clazz, int id) {
+               return new CdmEntityCacheKey(clazz, id);
+       }
+
+
+       public static CdmEntityCacheKey generateKey(CdmBase cdmBase) {
+               Class<? extends CdmBase> entityClass = cdmBase.getClass();
+               int id = cdmBase.getId();
+               return new CdmEntityCacheKey(entityClass, id);
+       }
+
+       public static boolean isRecursiveEnabled() {
+               return isRecursiveEnabled;
+       }
+
+       public static void  setRecursiveEnabled(boolean ire) {
+               isRecursiveEnabled = ire;
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/ICachedCommonService.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/ICachedCommonService.java
new file mode 100644 (file)
index 0000000..e3952fd
--- /dev/null
@@ -0,0 +1,46 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.cdm.api.cache;
+
+import org.hibernate.collection.spi.PersistentCollection;
+
+import eu.etaxonomy.cdm.api.cache.CachedCommonServiceImpl.CollectionField;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 14 Oct 2014
+ *
+ */
+public interface ICachedCommonService {
+
+    public CdmBase find(Class<? extends CdmBase> clazz, int id);
+
+    public PersistentCollection initializeCollection(PersistentCollection col);
+
+       public void updatePersistentCollection(CollectionField colf);
+
+    public boolean isEmpty(PersistentCollection col);
+
+    public int size(PersistentCollection col);
+
+    public Object get(PersistentCollection col, int index);
+
+    public boolean contains(PersistentCollection col, Object element);
+
+    public boolean containsKey(PersistentCollection col, Object key);
+
+    public boolean containsValue(PersistentCollection col, Object element);
+
+    public CollectionField getCollectionField(PersistentCollection pc);
+
+
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java
deleted file mode 100644 (file)
index e98d40d..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-package eu.etaxonomy.cdm.api.lazyloading;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.hibernate.collection.internal.PersistentList;
-import org.hibernate.collection.internal.PersistentMap;
-import org.hibernate.collection.internal.PersistentSet;
-import org.hibernate.collection.internal.PersistentSortedMap;
-import org.hibernate.collection.internal.PersistentSortedSet;
-import org.hibernate.collection.spi.PersistentCollection;
-import org.hibernate.proxy.LazyInitializer;
-import org.springframework.beans.factory.annotation.Autowire;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Configurable;
-import org.springframework.stereotype.Component;
-
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.PersistentMultiLanguageText;
-
-
-@Aspect
-@Component
-@Configurable(autowire = Autowire.BY_TYPE)
-public class CdmLazyLoader {
-
-
-       private Set classes = new HashSet();
-       
-       public static boolean enableWeaving = true;
-       private static Set<String> classesToIgnore = new HashSet<String>();
-       
-       
-       @Autowired
-       private ICommonService commonService;
-
-       public CdmLazyLoader() {
-               //classesToIgnore.add("eu.etaxonomy.cdm.model.common.TermVocabulary");
-               //classesToIgnore.add("eu.etaxonomy.cdm.model.common.OrderedTermVocabulary");
-               
-       }
-       
-       /**
-        *  Point cut for the 'initialize' method of the AbstractLazyInitializer.
-        *  
-        */
-       @Pointcut("execution(* org.hibernate.proxy.AbstractLazyInitializer.initialize())")
-       public void possibleEntityLazyInitializationException() {
-       }
-
-
-       /**
-        *  'Around' advice for the initialization of CDM Entity Objects
-        *  
-        */
-       @Around(value = "possibleEntityLazyInitializationException()")
-       public Object preloadEntityOnDemand(ProceedingJoinPoint pjp) throws Throwable {          
-               if(enableWeaving) {
-                       LazyInitializer ll = (LazyInitializer)pjp.getTarget();          
-                       if(ll.isUninitialized()) {                              
-                               int classid = ((Integer)ll.getIdentifier()).intValue();
-                               System.out.print("--> AspectJ Compile-Time Weaving " + ll.getEntityName() + " with id " + classid);
-                               Class clazz = (Class<? extends CdmBase>) Class.forName(ll.getEntityName());
-                               CdmBase cdmBase = CdmBase.deproxy(commonService.find(clazz,classid),clazz);
-                               ll.setImplementation(cdmBase);
-                               System.out.println("....Done");
-                       }
-               }
-               return pjp.proceed();                             
-       }
-       
-
-       /**
-        *  Point cut for the 'initialize' method of the AbstractPersistentCollection.
-        *  
-        */
-       @Pointcut("execution(protected final void org.hibernate.collection.internal.AbstractPersistentCollection.initialize(..))")
-       public void possibleCollectionLazyInitializationException() {
-       }
-       
-       /**
-        *  'Around' advice for the initialization of Collection objects
-        *  
-        */
-       @Around(value = "possibleCollectionLazyInitializationException()")      
-       public Object preloadCollectionOnDemand(ProceedingJoinPoint pjp) throws Throwable {              
-               if(enableWeaving) {
-                       PersistentCollection ps = (PersistentCollection) pjp.getTarget();
-                       if (ps.getOwner() != null && !classesToIgnore.contains(ps.getOwner().getClass().getName()) && !ps.wasInitialized() &&  !classes.contains(ps.getKey())) {
-                               System.out.print("--> AspectJCompile-Time Weaving " + ps.getRole());                
-                               classes.add(ps.getKey());
-                               try {
-                                       String role = ps.getRole();
-                                       String fieldName = role.substring(role.lastIndexOf(".") + 1);
-                                       System.out.print(", field : " + fieldName);
-                                       Object owner = ps.getOwner();
-
-                                       PersistentCollection col = commonService.initializeCollection(ps); 
-                                       ps.afterInitialize();
-
-                                       Class<?> clazz = ps.getClass();
-                                       if (clazz != null) {    
-                                               CollectionField cf = getCollectionField(col);
-                                               Field field = clazz.getDeclaredField(cf.getFieldName());
-                                               field.setAccessible(true);
-                                               field.set(ps, cf.getCollection());                             
-                                       }               
-                               } catch (Exception ex) {
-                                       ex.printStackTrace();
-                                       System.out.println("Error in ReattachSessionAspect : " + ex.getMessage());
-                               } finally {
-                                       classes.remove(ps.getKey());
-                                       System.out.println("....Done");
-                               }       
-                       }
-               } 
-               return pjp.proceed();
-
-       }
-       
-       private CollectionField getCollectionField(PersistentCollection pc) {
-               if(pc != null) {
-                       if(pc instanceof PersistentSet) {
-                               return new CollectionField(new HashSet((Set)pc), "set");
-                       }
-                       if(pc instanceof PersistentSortedSet) {
-                               return new CollectionField(new TreeSet((Set)pc), "set");
-                       }
-                       if(pc instanceof PersistentList) {
-                               return new CollectionField(new ArrayList((List)pc), "list");
-                       }
-                       if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
-                               return new CollectionField(new HashMap((Map)pc), "map");
-                       }
-                       if(pc instanceof PersistentSortedMap) {
-                               return new CollectionField(new TreeMap((Map)pc), "map");
-                       }
-               }
-               return null;
-       }
-       
-       private String getCollectionFieldName(PersistentCollection pc) {
-               if(pc != null) {
-                       if(pc instanceof PersistentSet || pc instanceof PersistentSortedSet) {
-                               return "set";
-                       }                       
-                       if(pc instanceof PersistentList) {
-                               return "list";
-                       }
-                       if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
-                               return "map";
-                       }
-               }
-               return null;
-       }
-       
-       private class CollectionField {
-               private Object col;
-               private String fieldName;
-               public CollectionField(Object col, String fieldName) {
-                       this.col = col;
-                       this.fieldName = fieldName;
-               }
-               
-               public Object getCollection() {
-                       return this.col;
-               }
-               
-               public String getFieldName() {
-                       return this.fieldName;
-               }
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmEagerLoadingException.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmEagerLoadingException.java
new file mode 100644 (file)
index 0000000..08cc011
--- /dev/null
@@ -0,0 +1,13 @@
+package eu.etaxonomy.taxeditor.remoting;
+
+public class CdmEagerLoadingException extends RuntimeException {
+       
+       public CdmEagerLoadingException(Throwable t) {
+               super(t);
+       }
+       
+       public CdmEagerLoadingException(String message) {
+               super(message);
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmRemotingException.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmRemotingException.java
new file mode 100644 (file)
index 0000000..68f5ca0
--- /dev/null
@@ -0,0 +1,14 @@
+package eu.etaxonomy.taxeditor.remoting;
+
+public class CdmRemotingException extends RuntimeException {
+       
+       /**
+        * 
+        */
+       private static final long serialVersionUID = -560332689478356360L;
+
+       public CdmRemotingException(String message) {
+               super(message);
+       }
+
+}
similarity index 89%
rename from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java
rename to eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java
index a6cd14cd2e1d2d16e6787d30e5f3d2617752dd2b..d8edcbf5f679afe52f0b571c8c0bb744a78b4559 100644 (file)
@@ -1,13 +1,13 @@
 /**
 * Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
 
 import static eu.etaxonomy.cdm.common.XmlHelp.getBeansRoot;
 import static eu.etaxonomy.cdm.common.XmlHelp.insertXmlBean;
@@ -27,15 +27,8 @@ import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.common.XmlHelp;
 import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
 import eu.etaxonomy.cdm.config.CdmPersistentXMLSource;
-import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.config.ICdmPersistentSource;
 import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
-import eu.etaxonomy.cdm.database.CdmDataSource;
-import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
-import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.cdm.database.types.IDatabaseType;
+import eu.etaxonomy.cdm.config.ICdmPersistentSource;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 
 /**
@@ -44,22 +37,22 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
  */
 public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements ICdmPersistentSource{
        private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSource.class);
-       
+
        public static final String REMOTESOURCE_BEAN_POSTFIX = "RemoteSource";
        private String beanName;
        private Properties cdmSourceProperties;
        private List<Attribute> cdmSourceAttributes;
-       
+
        /**
         * Creates a new instance of CdmPersistentRemoteSource
-        * 
+        *
         * @param name
         * @param server
         * @param port
         * @param contextPath
         * @param nomenclaturalCode
         * @return
-        * @throws CdmRemoteSourceException 
+        * @throws CdmRemoteSourceException
         */
        public static CdmPersistentRemoteSource NewInstance(String remoteSource) throws CdmRemoteSourceException {
                if(exists(remoteSource)) {
@@ -67,49 +60,49 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                } else {
                        throw new CdmRemoteSourceException("Remote source '" + remoteSource + "' does not exist in sources setting file");
                }
-               
+
        }
-       
+
        /**S
         * Creates a new CdmPersistentRemoteSource
-        * 
+        *
         * @param name
         * @param server
         * @param port
         * @param contextPath
         * @param nomenclaturalCode
-        * @throws CdmRemoteSourceException 
+        * @throws CdmRemoteSourceException
         */
-       private CdmPersistentRemoteSource(String remoteSource) throws CdmRemoteSourceException { 
-               
+       private CdmPersistentRemoteSource(String remoteSource) throws CdmRemoteSourceException {
+
                CdmPersistentXMLSource cdmPersistentXMLSource = CdmPersistentXMLSource.NewInstance(remoteSource, REMOTESOURCE_BEAN_POSTFIX);
                if(cdmPersistentXMLSource.getElement() != null) {
                        beanName = cdmPersistentXMLSource.getBeanName();
-                       // properties from the persistent xml file 
+                       // properties from the persistent xml file
                        cdmSourceProperties = cdmPersistentXMLSource.getCdmSourceProperties();
                        cdmSourceAttributes = cdmPersistentXMLSource.getCdmSourceAttributes();
                        checkProperties(cdmSourceProperties);
                } else {
                        throw new CdmRemoteSourceException("Remote source '" + remoteSource + "' does not exist in settings file");
-               }               
+               }
                initDatabaseConnection();
        }
-       
+
        private static void checkProperties(Properties cdmSourceProperties) throws CdmRemoteSourceException {
                if(!cdmSourceProperties.containsKey(CdmSourceProperties.SERVER.toString())) {
-                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");                 
+                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
                }
                String port = (String)cdmSourceProperties.get(CdmSourceProperties.PORT.toString());
                if(port == null || port.isEmpty()) {
-                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");                 
-               }       
+                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
+               }
                if(!cdmSourceProperties.containsKey(CdmSourceProperties.CONTEXTPATH.toString())) {
-                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");                 
-               }       
+                       throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
+               }
                // default NomenclaturalCode is always ICNAFP
-               if(!cdmSourceProperties.containsKey(CdmSourceProperties.NOMENCLATURAL_CODE.toString())) {                               
+               if(!cdmSourceProperties.containsKey(CdmSourceProperties.NOMENCLATURAL_CODE.toString())) {
                        cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), NomenclaturalCode.ICNAFP.name());
-               }                       
+               }
        }
 
        /* (non-Javadoc)
@@ -119,12 +112,12 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
        public String getBeanName() {
                return beanName;
        }
-       
+
        @Override
        public String getServer() {
                return cdmSourceProperties.getProperty(CdmSourceProperties.SERVER.toString());
        }
-       
+
        @Override
        public int getPort() {
                String port = CdmUtils.Nz(cdmSourceProperties.getProperty(CdmSourceProperties.PORT.toString()));
@@ -135,17 +128,17 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                        return Integer.valueOf(port);
                }
        }
-       
+
        @Override
        public String getContextPath() {
                return cdmSourceProperties.getProperty(CdmSourceProperties.CONTEXTPATH.toString());
        }
-       
+
        @Override
        public NomenclaturalCode getNomenclaturalCode() {
                return NomenclaturalCode.fromString(cdmSourceProperties.getProperty(CdmSourceProperties.NOMENCLATURAL_CODE.toString()));
        }
-       
+
        public static CdmPersistentRemoteSource save(String strRemoteSourceName, ICdmRemoteSource remoteSource) throws CdmRemoteSourceException {
                Properties cdmSourceProperties = new Properties();
                cdmSourceProperties.put(CdmSourceProperties.SERVER.toString(), remoteSource.getServer());
@@ -155,7 +148,7 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                checkProperties(cdmSourceProperties);
                return save(strRemoteSourceName, cdmSourceProperties);
        }
-       
+
        private static CdmPersistentRemoteSource save(String strRemoteSourceName,Properties cdmSourceProperties) throws CdmRemoteSourceException {
 
                //root
@@ -180,19 +173,19 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                }
 
                //save
-               saveToXml(root.getDocument(), 
-                               CdmPersistentSourceUtils.getResourceDirectory(), 
-                               CdmPersistentXMLSource.CDMSOURCE_FILE_NAME, 
+               saveToXml(root.getDocument(),
+                               CdmPersistentSourceUtils.getResourceDirectory(),
+                               CdmPersistentXMLSource.CDMSOURCE_FILE_NAME,
                                XmlHelp.prettyFormat );
 
                return NewInstance(strRemoteSourceName) ;
 
        }
-       
+
        /**
         * @param strDataSourceName
         * @param dataSource
-        * @param code 
+        * @param code
         * @return
         *                      the updated dataSource, null if not succesful
         */
@@ -201,7 +194,7 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                CdmPersistentSourceUtils.delete(CdmPersistentSourceUtils.getBeanName(strRemoteSourceName,REMOTESOURCE_BEAN_POSTFIX));
                return save(strRemoteSourceName, remoteSource);
        }
-       
+
        /**
         * Tests existing of the datsource in the according config  file.
         * @return true if a datasource with the given name exists in the according datasource config file.
@@ -210,22 +203,22 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                Element bean = CdmPersistentSourceUtils.getCdmSourceBeanXml(strRemoteSourceName, REMOTESOURCE_BEAN_POSTFIX);
                return (bean != null);
        }
-       
+
        /**
         * Returns a list of all datasources stored in the datasource config file
         * @return all existing data sources
-        * @throws CdmRemoteSourceException 
+        * @throws CdmRemoteSourceException
         */
        @SuppressWarnings("unchecked")
        static public List<CdmPersistentRemoteSource> getAllRemoteSources() throws CdmRemoteSourceException{
                List<CdmPersistentRemoteSource> remoteSources = new ArrayList<CdmPersistentRemoteSource>();
-               
+
                Element root = getBeansRoot(CdmPersistentSourceUtils.getCdmSourceInputStream());
                if (root == null){
                        return null;
                }else{
                List<Element> lsChildren  = root.getChildren("bean", root.getNamespace());
-               
+
                for (Element elBean : lsChildren){
                        String strId = elBean.getAttributeValue("id");
                        if (strId != null && strId.endsWith(REMOTESOURCE_BEAN_POSTFIX)){
@@ -236,7 +229,7 @@ public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements IC
                }
                return remoteSources;
        }
-       
+
        @Override
        public String toString(){
                if (getName() != null){
similarity index 96%
rename from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java
rename to eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSource.java
index 9dbb34b3abf2d0cad71d8a22736c473603d8e9e2..473cdca0f4d50494ecaf501320df57c353492de8 100644 (file)
@@ -6,7 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
 
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 
similarity index 88%
rename from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSourceBase.java
rename to eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceBase.java
index d24baa6ee8717126a7696dcb04f4c10a7f1ad271..d36bb14f027f3709736148fd73a2a07cd45f9827 100644 (file)
@@ -1,12 +1,12 @@
 /**
 * Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
 
 import java.util.Map;
 
@@ -15,12 +15,11 @@ import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean;
 import eu.etaxonomy.cdm.api.service.IDatabaseService;
 import eu.etaxonomy.cdm.config.CdmSource;
 import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 
 /**
- * Base class representing a CDM remote source. 
+ * Base class representing a CDM remote source.
  * This class handles all the configuration relating to the remoting aspect of
  * a CDM source.
  *
@@ -34,12 +33,12 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
        protected static final NomenclaturalCode DEFAULT_NOMENCLATURAL_CODE = NomenclaturalCode.ICNAFP;
        private String contextPath;
        private String baseUrl;
-       
+
        private IDatabaseService databaseService;
-       
+
        /**
         * Constructs a CdmRemoteSourceBase object with default values.
-        * 
+        *
         */
        protected CdmRemoteSourceBase() {
                setName(DEFAULT_NAME);
@@ -48,33 +47,33 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                setContextPath(DEFAULT_CONTEXT_PATH);
                setNomenclaturalCode(DEFAULT_NOMENCLATURAL_CODE);
        }
-       
+
        /**
         * Constructs a CdmRemoteSourceBase
-        * 
+        *
         * @param name
         * @param server
         * @param port
         * @param contextPath
         * @param nomenclaturalCode
         */
-       protected CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+       public CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
                setName(name);
                setServer(server);
                setPort(port);
                setContextPath(contextPath);
-               setNomenclaturalCode(nomenclaturalCode);                        
+               setNomenclaturalCode(nomenclaturalCode);
                initDatabaseConnection();
        }
-       
+
        protected void initDatabaseConnection() {
                if(getContextPath() == null || getContextPath().equals("")) {
                        setBaseUrl("http://" + getServer() + ":" + String.valueOf(getPort()));
                } else {
                        setBaseUrl("http://" + getServer()  + ":" + String.valueOf(getPort()) + "/" + getContextPath());
-               }       
+               }
                // the database service needs to be initialised (before the spring
-               // application context initialsation) since it is required to 
+               // application context initialsation) since it is required to
                // to make queries related to the source database
            HttpInvokerProxyFactoryBean proxy = new HttpInvokerProxyFactoryBean();
            proxy.setServiceInterface(IDatabaseService.class);
@@ -83,7 +82,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
            databaseService = (IDatabaseService) proxy.getObject();
 
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getBaseUrl()
         */
@@ -93,11 +92,11 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
        }
 
        /**
-        * Sets the base url for the http-invoker services as listed in 
+        * Sets the base url for the http-invoker services as listed in
         * httpInvokerServicesClients.xml.
-        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the 
+        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the
         * base url would be 'http://127.0.0.1:8080/col'
-        * 
+        *
         * @param baseUrl
         */
        public void setBaseUrl(String baseUrl) {
@@ -114,9 +113,9 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
 
        /**
         * Sets the context path.
-        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the 
+        * e.g. for 'http://127.0.0.1:8080/col/remoting/common.service', the
         * context path would be 'col'
-        * 
+        *
         * @param contextPath
         */
        public void setContextPath(String contextPath) {
@@ -146,9 +145,9 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
         */
        @Override
        public boolean checkConnection() throws CdmSourceException {
-               // assuming that database service works implies 
+               // assuming that database service works implies
                // the connection is up
-               // if no exception is thrown then we assume that the 
+               // if no exception is thrown then we assume that the
                // connection is up
                // FIXME:Remoting is this really correct?
                databaseService.getDbSchemaVersion();
@@ -164,7 +163,7 @@ public class CdmRemoteSourceBase extends CdmSource implements ICdmRemoteSource {
                return "Conncting to Remote CDM Server " + getName();
        }
 
-               
+
        @Override
        public Map<MetaDataPropertyName, String> getMetaDataMap() throws CdmSourceException {
                return databaseService.getCdmMetadataMap();
similarity index 94%
rename from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/ICdmRemoteSource.java
rename to eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/ICdmRemoteSource.java
index f278c74689aa3cbe8a0ee2de252e7940d62de8db..39e8886e43b31e6c881b8016a1baeba76d6f4519 100644 (file)
@@ -6,7 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.cdm.remote;
+package eu.etaxonomy.taxeditor.remoting.source;
 
 import eu.etaxonomy.cdm.config.ICdmSource;
 
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmClientSessionException.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmClientSessionException.java
new file mode 100644 (file)
index 0000000..4af9273
--- /dev/null
@@ -0,0 +1,8 @@
+package eu.etaxonomy.taxeditor.session;
+
+public class CdmClientSessionException extends RuntimeException {
+
+       public CdmClientSessionException(String message) {
+               super(message);
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java
new file mode 100644 (file)
index 0000000..c27cdd8
--- /dev/null
@@ -0,0 +1,113 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
+
+
+/**
+ * @author cmathew
+ * @date 20 Oct 2014
+ *
+ */
+
+public class CdmEntitySession<T extends CdmBase>  {
+
+    
+       private CdmEntitySessionManager cdmEntitySessionManager;
+       
+       private ISessionEventListener sessionOwner;
+               
+       private CdmTransientEntityCacher cdmTransientEntityCacher;
+       
+       private IService<T> service;
+       
+       private List<T> rootEntities;
+       
+       CdmEntitySession(ISessionEventListener sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
+               this.sessionOwner = sessionOwner;
+               this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner, cdmEntitySessionManager);
+               this.rootEntities = new ArrayList<T>();
+               
+               cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
+       }
+       
+       CdmEntitySession(ISessionEventListener sessionOwner, IService<T> service, CdmEntitySessionManager cdmEntitySessionManager) {
+               this.sessionOwner = sessionOwner;
+               this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner, cdmEntitySessionManager);
+               this.rootEntities = new ArrayList<T>();
+               this.service = service;
+               cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
+       }
+//     
+//     public CdmTransientEntityCacher getCdmTransientEntityCacher() {
+//             return cdmTransientEntityCacher;
+//     }
+       
+       public <T extends Object> T load(T obj) {               
+               return (T) cdmTransientEntityCacher.load(obj,true);
+       }
+
+
+       public <T extends CdmBase> T load(T cdmBase) {          
+               return (T)cdmTransientEntityCacher.load(cdmBase,true);
+       }
+
+       public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList) {
+               
+               return cdmTransientEntityCacher.load(cdmBaseList,true);
+       }
+       
+       public void setEntitiesAsLatest() {
+               List<CdmBase> entities = cdmTransientEntityCacher.getAllEntities();
+               for(CdmBase entity : entities) {
+                       cdmEntitySessionManager.setEntityAsLatest(entity);
+               }
+       }
+       
+       public  void addRootEntity(T cdmBase) {
+               rootEntities.add(cdmBase);
+       }
+       
+       public void addRootEntities(Collection<T> objectList) {
+               for(T obj : objectList) {                       
+                       addRootEntity(obj);                     
+               }
+       }
+       
+       public  void commit() {
+               for(T rootEntity : rootEntities) {                      
+                       service.merge( rootEntity);
+               }
+       }
+       
+       public void commit(IService<T> service,T cdmBase) {
+               service.merge(cdmBase);
+       }
+       
+       public void dispose() {
+               rootEntities.clear();
+               cdmTransientEntityCacher.dispose();
+       }
+               
+       
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java
new file mode 100644 (file)
index 0000000..5406b4e
--- /dev/null
@@ -0,0 +1,254 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.cache.CachedCommonServiceImpl;
+import eu.etaxonomy.cdm.api.cache.CdmClientCacheException;
+import eu.etaxonomy.cdm.api.cache.CdmClientCachingTest;
+import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author cmathew
+ * @date 16 Oct 2014
+ *
+ */
+@Component("cdmEntitySessionManager")
+public class CdmEntitySessionManager implements ICdmEntitySessionManager {
+       private static final Logger logger = Logger.getLogger(CdmEntitySessionManager.class);
+
+    private Map<ISessionEventListener, CdmEntitySession> ownerSessionMap = 
+               new HashMap<ISessionEventListener, CdmEntitySession>();
+    
+//    private HashMap<String, HashSet<CdmClientBase<T>>> entitiesMap = 
+//             new HashMap<String, HashSet<CdmClientBase<T>>>();
+    
+    private CdmTransientEntityCacher latestEntityCacher =
+               new CdmTransientEntityCacher("latestEntityCacher", this);
+    
+    private CdmEntitySession activeSession;
+    
+    /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getActiveSession()
+        */
+    @Override
+       public CdmEntitySession getActiveSession() {
+               return activeSession;
+       }
+    
+    /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getSession(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+        */
+    @Override
+       public CdmEntitySession getSession(ISessionEventListener sessionOwner) {
+       if(sessionOwner == null) {
+               return null;
+       }
+       
+               CdmEntitySession session = ownerSessionMap.get(sessionOwner);
+               if(session == null) {
+                       logger.info("No session exists for session owner with class : " + sessionOwner.getClass().getName());                   
+               }
+               return session;
+       }
+       
+       private CdmEntitySession newSession(ISessionEventListener sessionOwner, boolean setAsActive) {
+               CdmEntitySession session = ownerSessionMap.get(sessionOwner);
+               if(session == null) {           
+                       session = new CdmEntitySession(sessionOwner, this);
+                       addToOwnerSessionMap(sessionOwner, session);
+               }
+               
+               if(setAsActive) {
+                       activeSession = session;
+               }               
+               return session;
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bind(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+        */
+       @Override
+       public void bind(ISessionEventListener sessionOwner) {
+               CdmEntitySession session  = ownerSessionMap.get(sessionOwner);
+               if(session == null) {
+                       session = newSession(sessionOwner,true);
+               }
+               activeSession = session;
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.taxeditor.session.ISessionEventListener, T)
+        */
+       @Override
+       public <T extends Object> T load(ISessionEventListener sessionOwner, T obj) {
+               CdmEntitySession session = newSession(sessionOwner,true);
+               return (T) session.load(obj);
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
+        */
+       @Override
+       public <T extends Object> T load(T obj) {
+               if(activeSession == null) {
+                       throw new CdmClientSessionException("No active session has been bound, cannot load cdm entity");                        
+               }
+               return (T)activeSession.load(obj);
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.taxeditor.session.ISessionEventListener, T)
+        */
+       @Override
+       public <T extends CdmBase> T load(ISessionEventListener sessionOwner, T cdmBase) {
+               CdmEntitySession session = newSession(sessionOwner,true);
+               return (T)session.load(cdmBase);
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
+        */
+       @Override
+       public <T extends CdmBase> T load(T cdmBase) {
+               if(activeSession == null) {
+                       throw new CdmClientSessionException("No active session has been bound, cannot load cdm entity");                        
+               }
+               return (T)activeSession.load(cdmBase);
+       }
+       
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.taxeditor.session.ISessionEventListener, java.util.Collection)
+        */
+       @Override
+       public <T extends CdmBase> Collection<T> load(ISessionEventListener sessionOwner, Collection<T> cdmBaseList) {
+               CdmEntitySession session = newSession(sessionOwner,true);
+               return session.load(cdmBaseList);
+       }
+       
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(java.util.Collection)
+        */
+       @Override
+       public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList) {
+               if(activeSession == null) {
+                       throw new CdmClientSessionException("No active session has been bound, cannot load cdm entity list");                   
+               }
+               return activeSession.load(cdmBaseList);
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#addRootEntity(T)
+        */
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T extends CdmBase> void addRootEntity(T cdmBase) {
+               if(activeSession == null) {
+                       throw new CdmClientSessionException("No active session has been bound, cannot add root cdm entity");                    
+               }
+               activeSession.addRootEntity(cdmBase);
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#addRootEntities(java.util.Collection)
+        */
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T extends Object> void addRootEntities(Collection<T> cdmBaseList) {
+               if(activeSession == null) {
+                       throw new CdmClientSessionException("No active session has been bound, cannot add root cdm entity");                    
+               }
+               activeSession.addRootEntities(cdmBaseList);
+       }
+
+//     /* (non-Javadoc)
+//      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#commit()
+//      */
+//     @Override
+//     public void commit() {
+//             if(activeSession == null) {
+//                     logger.info("No active session has been bound, nothing to commit");
+//             }
+//             activeSession.commit();
+//     }
+//
+//     
+//     /* (non-Javadoc)
+//      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#commit(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+//      */
+//     @Override
+//     public void commit(ISessionEventListener sessionOwner) {
+//             if(sessionOwner == null) {
+//             return ;
+//     }
+//     
+//             CdmEntitySession session = ownerSessionMap.get(sessionOwner);
+//             if(session == null) {
+//                     logger.info("No session exists for session owner with class : " + sessionOwner.getClass().getName());                   
+//             } else {
+//                     session.commit();
+//             }               
+//     }
+               
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+        */
+       @Override
+       public void dispose(ISessionEventListener owner) {
+               CdmEntitySession session = ownerSessionMap.get(owner);
+               if(session == null) {
+                       logger.info("No Session connected to owner, nothing to dispose");
+                       return;
+               }
+               session.dispose();      
+       }
+       
+        void addToOwnerSessionMap(ISessionEventListener owner, CdmEntitySession session) {
+               ownerSessionMap.put(owner, session);
+       }
+       
+//     void addToLinkedEntities(T cdmBase) {
+//             if(cdmBase == null) {
+//                     return;
+//             }
+//             String id = CdmTransientEntityCacher.generateId(cdmBase);
+//             HashSet<CdmClientBase<T>> linkedEntities = entitiesMap.get(id);
+//             if(linkedEntities == null) {
+//                     linkedEntities = new HashSet<CdmClientBase<T>>();                       
+//             }
+//             linkedEntities.add(cdmBase);
+//     }
+               
+
+       void setEntityAsLatest(CdmBase cdmBase) {               
+               latestEntityCacher.put(cdmBase);
+       }
+       
+       void promoteSessionEntitiesToLatest(ISessionEventListener owner) {
+               CdmEntitySession session = ownerSessionMap.get(owner);
+               if(session != null) {
+                       session.setEntitiesAsLatest();
+               }
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java
new file mode 100644 (file)
index 0000000..00e51bf
--- /dev/null
@@ -0,0 +1,51 @@
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+public interface ICdmEntitySessionManager {
+
+       public abstract CdmEntitySession getActiveSession();
+
+       public abstract CdmEntitySession getSession(
+                       ISessionEventListener sessionOwner);
+
+       public abstract void bind(ISessionEventListener sessionOwner);
+
+       public abstract <T extends Object> T load(
+                       ISessionEventListener sessionOwner, T obj);
+
+       public abstract <T extends Object> T load(T obj);
+
+       public abstract <T extends CdmBase> T load(
+                       ISessionEventListener sessionOwner, T cdmBase);
+
+       public abstract <T extends CdmBase> T load(T cdmBase);
+
+       public abstract <T extends CdmBase> Collection<T> load(
+                       ISessionEventListener sessionOwner, Collection<T> cdmBaseList);
+
+       public abstract <T extends CdmBase> Collection<T> load(
+                       Collection<T> cdmBaseList);
+
+       @SuppressWarnings("unchecked")
+       public abstract <T extends CdmBase> void addRootEntity(T cdmBase);
+
+       @SuppressWarnings("unchecked")
+       public abstract <T extends Object> void addRootEntities(
+                       Collection<T> cdmBaseList);
+
+       //FIXME:Remoting would be nice to have these methods working,
+       //      but they can only be useful if we can 'intelligently'
+       //      get from a model class to the correspoding service class        
+//     public abstract void commit();
+//
+//     public abstract void commit(ISessionEventListener sessionOwner);
+//
+//     public abstract void commit(IService service, CdmBase cdmBase);
+
+       public abstract void dispose(ISessionEventListener owner);
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ISessionEventListener.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ISessionEventListener.java
new file mode 100644 (file)
index 0000000..423a417
--- /dev/null
@@ -0,0 +1,5 @@
+package eu.etaxonomy.taxeditor.session;
+
+public interface ISessionEventListener {
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java
new file mode 100644 (file)
index 0000000..4e6e529
--- /dev/null
@@ -0,0 +1,91 @@
+package eu.etaxonomy.taxeditor.session.mock;
+
+import java.util.Collection;
+
+import org.springframework.stereotype.Component;
+
+import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.session.CdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
+
+
+public class MockCdmEntitySessionManager implements ICdmEntitySessionManager {
+
+       @Override
+       public CdmEntitySession getActiveSession() {            
+               return null;
+       }
+
+       @Override
+       public CdmEntitySession getSession(ISessionEventListener sessionOwner) {                
+               return null;
+       }
+
+       @Override
+       public void bind(ISessionEventListener sessionOwner) {          
+       }
+
+       @Override
+       public <T> T load(ISessionEventListener sessionOwner, T obj) {
+               return obj;
+       }
+
+       @Override
+       public <T extends CdmBase> T load(ISessionEventListener sessionOwner, T obj) {
+               return obj;
+       }
+
+       @Override
+       public <T> T load(T obj) {
+               return obj;
+       }
+
+       @Override
+       public <T extends CdmBase> T load(T obj) {
+               return obj;
+       }
+
+       @Override
+       public <T extends CdmBase> Collection<T> load(
+                       ISessionEventListener sessionOwner, Collection<T> cdmBaseList) {
+               return cdmBaseList;
+       }
+
+       @Override
+       public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList) {
+               return cdmBaseList;
+       }
+
+       @Override
+       public <T extends CdmBase> void addRootEntity(T cdmBase) {
+               
+       }
+
+       @Override
+       public <T> void addRootEntities(Collection<T> cdmBaseList) {
+               
+       }
+
+//     @Override
+//     public void commit() {
+//             
+//     }
+//
+//     @Override
+//     public void commit(ISessionEventListener sessionOwner) {
+//             
+//     }
+//
+//     @Override
+//     public void commit(IService service, CdmBase cdmBase) {
+//             
+//     }
+
+       @Override
+       public void dispose(ISessionEventListener owner) {
+               
+       }
+
+}
index e6841035b006c86e34fadc4ffca125640c6a7789..273b2b4133c5041fb0033592431e62740428a3e4 100644 (file)
@@ -30,15 +30,10 @@ import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
 
 import javax.naming.NamingException;
 
@@ -64,10 +59,10 @@ import org.hibernate.pretty.MessageHelper;
 import org.hibernate.type.Type;
 import org.jboss.logging.Logger;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.api.service.ICommonService;
-import eu.etaxonomy.cdm.model.common.PersistentMultiLanguageText;
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
+import eu.etaxonomy.cdm.api.cache.CachedCommonServiceImpl.CollectionField;
+import eu.etaxonomy.cdm.api.cache.ICachedCommonService;
+import eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException;
 
 /**
  * Base class implementing {@link org.hibernate.collection.spi.PersistentCollection}
@@ -78,7 +73,7 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        private static final Logger log = Logger.getLogger( AbstractPersistentCollection.class );
 
        private static final long serialVersionUID = -7238232378593030571L;
-       
+
        private transient SessionImplementor session;
        private boolean initialized;
        private transient List<DelayedOperation> operationQueue;
@@ -97,31 +92,38 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        private String sessionFactoryUuid;
        private boolean specjLazyLoad = false;
 
-       public final String getRole() {
+       @Override
+    public final String getRole() {
                return role;
        }
 
-       public final Serializable getKey() {
+       @Override
+    public final Serializable getKey() {
                return key;
        }
 
-       public final boolean isUnreferenced() {
+       @Override
+    public final boolean isUnreferenced() {
                return role == null;
        }
 
-       public final boolean isDirty() {
+       @Override
+    public final boolean isDirty() {
                return dirty;
        }
 
-       public final void clearDirty() {
+       @Override
+    public final void clearDirty() {
                dirty = false;
        }
 
-       public final void dirty() {
+       @Override
+    public final void dirty() {
                dirty = true;
        }
 
-       public final Serializable getStoredSnapshot() {
+       @Override
+    public final Serializable getStoredSnapshot() {
                return storedSnapshot;
        }
 
@@ -130,7 +132,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * Is the initialized collection empty?
         */
-       public abstract boolean empty();
+       @Override
+    public abstract boolean empty();
 
        /**
         * Called by any read-only method of the collection interface
@@ -151,9 +154,9 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        else {
                                // In remoting we are sure that session is null
                                // both when using property paths and switching off conversations
-                               if(session == null && remoting) {                               
+                               if(session == null && remoting) {
                                        log.info("--> readSize, of " + getRole() + " with key " + getKey());
-                                       read();                                                         
+                                       read();
                                } else {
                                        boolean isExtraLazy = withTemporarySessionIfNeeded(
                                                        new LazyInitializationWork<Boolean>() {
@@ -236,7 +239,7 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                                        .getTransactionContext().getTransactionEnvironment()
                                        .getTransactionFactory()
                                        .compatibleWithJtaSynchronization();
-                       
+
                        if ( !isJTA ) {
                                // Explicitly handle the transactions only if we're not in
                                // a JTA environment.  A lazy loading temporary session can
@@ -245,7 +248,7 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                                // multiple transactions.
                                ( ( Session) session ).beginTransaction();
                        }
-                       
+
                        session.getPersistenceContext().addUninitializedDetachedCollection(
                                        session.getFactory().getCollectionPersister( getRole() ),
                                        this
@@ -286,9 +289,9 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                if ( !initialized ) {
                        // In remoting we are sure that session is null
                        // both when using property paths and switching off conversations
-                       if(session == null && remoting) {                       
+                       if(session == null && remoting) {
                                log.info("--> readIndexExistence, of " + getRole() + " with key " + getKey());
-                               read();                                                                         
+                               read();
                        } else {
                                Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
                                                new LazyInitializationWork<Boolean>() {
@@ -323,8 +326,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        // both when using property paths and switching off conversations
                        if(session == null && remoting) {
                                log.info("--> readElementExistence, of " + getRole() + " with key " + getKey());
-                               read();                         
-                               
+                               read();
+
                        } else {
                                Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
                                                new LazyInitializationWork<Boolean>() {
@@ -359,10 +362,10 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                if ( !initialized ) {
                        // In remoting we are sure that session is null
                        // both when using property paths and switching off conversations
-                       if(session == null && remoting) {                               
+                       if(session == null && remoting) {
                                log.info("--> readElementByIndex, of " + getRole() + " with key " + getKey());
-                               read();                         
-                               
+                               read();
+
                        } else {
                                class ExtraLazyElementByIndexReader implements LazyInitializationWork {
                                        private boolean isExtraLazy;
@@ -510,7 +513,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * After flushing, re-init snapshot state.
         */
-       public void setSnapshot(Serializable key, String role, Serializable snapshot) {
+       @Override
+    public void setSnapshot(Serializable key, String role, Serializable snapshot) {
                this.key = key;
                this.role = role;
                this.storedSnapshot = snapshot;
@@ -520,7 +524,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * After flushing, clear any "queued" additions, since the
         * database state is now synchronized with the memory state.
         */
-       public void postAction() {
+       @Override
+    public void postAction() {
                operationQueue = null;
                cachedSize = -1;
                clearDirty();
@@ -540,14 +545,16 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * return the user-visible collection (or array) instance
         */
-       public Object getValue() {
+       @Override
+    public Object getValue() {
                return this;
        }
 
        /**
         * Called just before reading any rows from the JDBC result set
         */
-       public void beginRead() {
+       @Override
+    public void beginRead() {
                // override on some subclasses
                initializing = true;
        }
@@ -555,12 +562,14 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * Called after reading all rows from the JDBC result set
         */
-       public boolean endRead() {
+       @Override
+    public boolean endRead() {
                //override on some subclasses
                return afterInitialize();
        }
 
-       public boolean afterInitialize() {
+       @Override
+    public boolean afterInitialize() {
                setInitialized();
                //do this bit after setting initialized to true or it will recurse
                if ( operationQueue != null ) {
@@ -586,14 +595,14 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                // In remoting we are sure that session is null
                // both when using property paths and switching off conversations
                if(session == null && remoting) {
-                       remoteInitialize();                     
+                       remoteInitialize();
                }
-               
+
                if ( initialized ) {
                        return;
                }
 
-               
+
                withTemporarySessionIfNeeded(
                                new LazyInitializationWork<Object>() {
                                        @Override
@@ -635,7 +644,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * Could the application possibly have a direct reference to
         * the underlying collection implementation?
         */
-       public boolean isDirectlyAccessible() {
+       @Override
+    public boolean isDirectlyAccessible() {
                return directlyAccessible;
        }
 
@@ -644,7 +654,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         *
         * @return true if this was currently associated with the given session
         */
-       public final boolean unsetSession(SessionImplementor currentSession) {
+       @Override
+    public final boolean unsetSession(SessionImplementor currentSession) {
                prepareForPossibleSpecialSpecjInitialization();
                if ( currentSession == this.session ) {
                        this.session = null;
@@ -679,7 +690,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * @throws HibernateException if the collection was already associated
         * with another open session
         */
-       public final boolean setCurrentSession(SessionImplementor session) throws HibernateException {
+       @Override
+    public final boolean setCurrentSession(SessionImplementor session) throws HibernateException {
                if ( session == this.session ) {
                        return false;
                }
@@ -711,7 +723,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * Do we need to completely recreate this collection when it changes?
         */
-       public boolean needsRecreate(CollectionPersister persister) {
+       @Override
+    public boolean needsRecreate(CollectionPersister persister) {
                return false;
        }
 
@@ -719,7 +732,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * To be called internally by the session, forcing
         * immediate initialization.
         */
-       public final void forceInitialization() throws HibernateException {
+       @Override
+    public final void forceInitialization() throws HibernateException {
                if ( !initialized ) {
                        if ( initializing ) {
                                throw new AssertionFailure( "force initialize loading collection" );
@@ -746,38 +760,45 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * Is this instance initialized?
         */
-       public final boolean wasInitialized() {
+       @Override
+    public final boolean wasInitialized() {
                return initialized;
        }
 
-       public boolean isRowUpdatePossible() {
+       @Override
+    public boolean isRowUpdatePossible() {
                return true;
        }
 
        /**
         * Does this instance have any "queued" additions?
         */
-       public final boolean hasQueuedOperations() {
+       @Override
+    public final boolean hasQueuedOperations() {
                return operationQueue != null;
        }
 
        /**
         * Iterate the "queued" additions
         */
-       public final Iterator queuedAdditionIterator() {
+       @Override
+    public final Iterator queuedAdditionIterator() {
                if ( hasQueuedOperations() ) {
                        return new Iterator() {
                                int i = 0;
 
-                               public Object next() {
+                               @Override
+                public Object next() {
                                        return operationQueue.get( i++ ).getAddedInstance();
                                }
 
-                               public boolean hasNext() {
+                               @Override
+                public boolean hasNext() {
                                        return i < operationQueue.size();
                                }
 
-                               public void remove() {
+                               @Override
+                public void remove() {
                                        throw new UnsupportedOperationException();
                                }
                        };
@@ -790,7 +811,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        /**
         * Iterate the "queued" additions
         */
-       @SuppressWarnings({"unchecked"})
+       @Override
+    @SuppressWarnings({"unchecked"})
        public final Collection getQueuedOrphans(String entityName) {
                if ( hasQueuedOperations() ) {
                        Collection additions = new ArrayList( operationQueue.size() );
@@ -810,19 +832,22 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * Called before inserting rows, to ensure that any surrogate keys
         * are fully generated
         */
-       public void preInsert(CollectionPersister persister) throws HibernateException {
+       @Override
+    public void preInsert(CollectionPersister persister) throws HibernateException {
        }
 
        /**
         * Called after inserting a row, to fetch the natively generated id
         */
-       public void afterRowInsert(CollectionPersister persister, Object entry, int i) throws HibernateException {
+       @Override
+    public void afterRowInsert(CollectionPersister persister, Object entry, int i) throws HibernateException {
        }
 
        /**
         * get all "orphaned" elements
         */
-       public abstract Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException;
+       @Override
+    public abstract Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException;
 
        /**
         * Get the current session
@@ -839,15 +864,18 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        this.itr = itr;
                }
 
-               public boolean hasNext() {
+               @Override
+        public boolean hasNext() {
                        return itr.hasNext();
                }
 
-               public Object next() {
+               @Override
+        public Object next() {
                        return itr.next();
                }
 
-               public void remove() {
+               @Override
+        public void remove() {
                        write();
                        itr.remove();
                }
@@ -861,42 +889,51 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        this.itr = itr;
                }
 
-               @SuppressWarnings({"unchecked"})
+               @Override
+        @SuppressWarnings({"unchecked"})
                public void add(Object o) {
                        write();
                        itr.add( o );
                }
 
-               public boolean hasNext() {
+               @Override
+        public boolean hasNext() {
                        return itr.hasNext();
                }
 
-               public boolean hasPrevious() {
+               @Override
+        public boolean hasPrevious() {
                        return itr.hasPrevious();
                }
 
-               public Object next() {
+               @Override
+        public Object next() {
                        return itr.next();
                }
 
-               public int nextIndex() {
+               @Override
+        public int nextIndex() {
                        return itr.nextIndex();
                }
 
-               public Object previous() {
+               @Override
+        public Object previous() {
                        return itr.previous();
                }
 
-               public int previousIndex() {
+               @Override
+        public int previousIndex() {
                        return itr.previousIndex();
                }
 
-               public void remove() {
+               @Override
+        public void remove() {
                        write();
                        itr.remove();
                }
 
-               @SuppressWarnings({"unchecked"})
+               @Override
+        @SuppressWarnings({"unchecked"})
                public void set(Object o) {
                        write();
                        itr.set( o );
@@ -911,63 +948,76 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        this.set = set;
                }
 
-               @SuppressWarnings({"unchecked"})
+               @Override
+        @SuppressWarnings({"unchecked"})
                public boolean add(Object o) {
                        write();
                        return set.add( o );
                }
 
-               @SuppressWarnings({"unchecked"})
+               @Override
+        @SuppressWarnings({"unchecked"})
                public boolean addAll(Collection c) {
                        write();
                        return set.addAll( c );
                }
 
-               public void clear() {
+               @Override
+        public void clear() {
                        write();
                        set.clear();
                }
 
-               public boolean contains(Object o) {
+               @Override
+        public boolean contains(Object o) {
                        return set.contains( o );
                }
 
-               public boolean containsAll(Collection c) {
+               @Override
+        public boolean containsAll(Collection c) {
                        return set.containsAll( c );
                }
 
-               public boolean isEmpty() {
+               @Override
+        public boolean isEmpty() {
                        return set.isEmpty();
                }
 
-               public Iterator iterator() {
+               @Override
+        public Iterator iterator() {
                        return new IteratorProxy( set.iterator() );
                }
 
-               public boolean remove(Object o) {
+               @Override
+        public boolean remove(Object o) {
                        write();
                        return set.remove( o );
                }
 
-               public boolean removeAll(Collection c) {
+               @Override
+        public boolean removeAll(Collection c) {
                        write();
                        return set.removeAll( c );
                }
 
-               public boolean retainAll(Collection c) {
+               @Override
+        public boolean retainAll(Collection c) {
                        write();
                        return set.retainAll( c );
                }
 
-               public int size() {
+               @Override
+        public int size() {
                        return set.size();
                }
 
-               public Object[] toArray() {
+               @Override
+        public Object[] toArray() {
                        return set.toArray();
                }
 
-               @SuppressWarnings({"unchecked"})
+               @Override
+        @SuppressWarnings({"unchecked"})
                public Object[] toArray(Object[] array) {
                        return set.toArray( array );
                }
@@ -1207,163 +1257,74 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
        }
 
-       public Object getIdentifier(Object entry, int i) {
+       @Override
+    public Object getIdentifier(Object entry, int i) {
                throw new UnsupportedOperationException();
        }
 
-       public Object getOwner() {
+       @Override
+    public Object getOwner() {
                return owner;
        }
 
-       public void setOwner(Object owner) {
+       @Override
+    public void setOwner(Object owner) {
                this.owner = owner;
        }
 
        /** ------ Below is section of code which makes remote service calls ----- */
-       // The affected methods are : 
+       // The affected methods are :
        // initialize(final boolean writing)
        // readSize()
        // readIndexExistence(final Object index)
        // readElementExistence(final Object element)
-       // readElementByIndex(final Object index) 
-       
-       private static ICdmApplicationConfiguration configuration;
+       // readElementByIndex(final Object index)
+
+       private static CdmApplicationRemoteConfiguration configuration;
        private static boolean remoting = false;
-       
-       public static void setConfiguration(ICdmApplicationConfiguration conf) {
+
+       public static void setConfiguration(CdmApplicationRemoteConfiguration conf) {
+           remoting = true;
                configuration = conf;
-                       
-               if(conf instanceof CdmApplicationRemoteController) {
-                       remoting = true;
-               } else {
-                       remoting = false;
-               }
        }
-       
-       
+
+
        private void remoteInitialize() {
-               
-               if (getOwner() != null && !initialized) {                       
-                       
+
+               if (getOwner() != null && !initialized) {
+
                        try {
                                String role = getRole();
                                String fieldName = role.substring(role.lastIndexOf(".") + 1);
-                               log.info("--> Remote Lazy Initializing " + getRole() + " , key : " + getKey() + " , field : " + fieldName);
+                               log.info("--> Remote Lazy Initializing Collection " + getRole() + " , key : " + getKey() + " , field : " + fieldName);
                                Object owner = getOwner();
-                               
+
                                if(configuration == null) {
                                        throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");
                                }
-                               ICommonService commonService = configuration.getCommonService();
-                               if(commonService == null) {
+                               ICachedCommonService cachedCommonService = configuration.getCachedCommonService();
+                               if(cachedCommonService == null) {
                                        throw new HibernateException("commonService not initialized (null)");
                                }
-                               
-                               PersistentCollection col = commonService.initializeCollection(this); 
+
+                               PersistentCollection col = cachedCommonService.initializeCollection(this);
                                afterInitialize();
 
                                Class<?> clazz = getClass();
-                               if (clazz != null) {    
-                                       CollectionField cf = getCollectionField(col);
-                                       Field field = clazz.getDeclaredField(cf.getFieldName());
+                               if (clazz != null) {
+                                       CollectionField cf = cachedCommonService.getCollectionField(col);
+                                       cachedCommonService.updatePersistentCollection(cf);
+                                       Field field = clazz.getDeclaredField(cf.getType().toString());
                                        field.setAccessible(true);
-                                       field.set(this, cf.getCollection());                           
-                               }               
+                                       field.set(this, cf.getCollection());
+                               }
                        } catch (Exception ex) {
-                               log.warn(ex.getMessage());
-                       }                       
-               }
-       }
-       
-       
-       private CollectionField getCollectionField(PersistentCollection pc) {
-               if(pc != null) {
-                       if(pc instanceof PersistentSet) {
-                               return new CollectionField(new HashSet((Set)pc), "set");
-                       }
-                       if(pc instanceof PersistentSortedSet) {
-                               return new CollectionField(new TreeSet((Set)pc), "set");
-                       }
-                       if(pc instanceof PersistentList) {
-                               return new CollectionField(new ArrayList((List)pc), "list");
-                       }
-                       if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
-                               return new CollectionField(new HashMap((Map)pc), "map");
-                       }
-                       if(pc instanceof PersistentSortedMap) {
-                               return new CollectionField(new TreeMap((Map)pc), "map");
+                               throw new CdmEagerLoadingException(ex);
                        }
                }
-               return null;
-       }
-       
-       private String getCollectionFieldName(PersistentCollection pc) {
-               if(pc != null) {
-                       if(pc instanceof PersistentSet || pc instanceof PersistentSortedSet) {
-                               return "set";
-                       }                       
-                       if(pc instanceof PersistentList) {
-                               return "list";
-                       }
-                       if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
-                               return "map";
-                       }
-               }
-               return null;
-       }
-       
-       private class CollectionField {
-               private Object col;
-               private String fieldName;
-               public CollectionField(Object col, String fieldName) {
-                       this.col = col;
-                       this.fieldName = fieldName;
-               }
-               
-               public Object getCollection() {
-                       return this.col;
-               }
-               
-               public String getFieldName() {
-                       return this.fieldName;
-               }
-       }
-       
-       public static boolean isInitialized(List list) {
-               return ((AbstractPersistentCollection)list).initialized;
-       }
-       
-       public static boolean isInitialized(Map map) {
-               return ((AbstractPersistentCollection)map).initialized;
-       }
-       
-       public static boolean isInitialized(Set set) {
-               return ((AbstractPersistentCollection)set).initialized;
-       }
-       
-       //FIXME:Remoting These methods may no longer be required since we are 
-       //               initialising collections as default behaviour
-       private int remoteSize() {
-               int size = configuration.getCommonService().size(this);
-               log.debug("--> Remote Lazy Initializing size of " + getRole() + " to " + size);
-               if(size == -1) {
-                       throw new HibernateException("size of " + getClass() + " could not be retrieved from remote service");
-               }
-               return size;
-       }
-       
-       private Object remoteReadElementByIndex(int index) {
-               Object element = configuration.getCommonService().get(this,index);
-               log.debug("--> Remote Lazy Initializing element from " + getRole() + " at index " + index);
-               return element;
-       }
-       
-       private boolean remoteReadElementExistence(Object element) {
-               return configuration.getCommonService().contains(this,element);
-       }
-       
-       private boolean remoteReadIndexExistence(Object index) {
-               return false;
        }
+
+
+
 }
 
index 4d2db1551f9dc872e5a57a94573326f1870cb469..5c11354536e5fb33d842e6d8cffec2fe6893dd04 100644 (file)
@@ -24,7 +24,6 @@
 package org.hibernate.proxy;
 
 import java.io.Serializable;
-import java.util.Set;
 
 import javax.naming.NamingException;
 
@@ -33,20 +32,15 @@ import org.hibernate.LazyInitializationException;
 import org.hibernate.Session;
 import org.hibernate.SessionException;
 import org.hibernate.TransientObjectException;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
 import org.hibernate.engine.spi.EntityKey;
 import org.hibernate.engine.spi.SessionFactoryImplementor;
 import org.hibernate.engine.spi.SessionImplementor;
 import org.hibernate.internal.SessionFactoryRegistry;
 import org.hibernate.persister.entity.EntityPersister;
 import org.jboss.logging.Logger;
-import org.springframework.beans.factory.annotation.Autowire;
-import org.springframework.beans.factory.annotation.Configurable;
-import org.springframework.stereotype.Component;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
+import eu.etaxonomy.cdm.api.cache.ICachedCommonService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
 /**
@@ -56,8 +50,6 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  *
  * @author Gavin King
  */
-@Component
-@Configurable(dependencyCheck = true,autowire = Autowire.BY_TYPE)
 public abstract class AbstractLazyInitializer implements LazyInitializer {
        private static final Logger log = Logger.getLogger( AbstractLazyInitializer.class );
 
@@ -207,14 +199,14 @@ public abstract class AbstractLazyInitializer implements LazyInitializer {
                                SessionFactoryImplementor sf = (SessionFactoryImplementor)
                                                SessionFactoryRegistry.INSTANCE.getSessionFactory( sessionFactoryUuid );
                                SessionImplementor session = (SessionImplementor) sf.openSession();
-                               
+
                                // TODO: On the next major release, add an
                                // 'isJTA' or 'getTransactionFactory' method to Session.
                                boolean isJTA = session.getTransactionCoordinator()
                                                .getTransactionContext().getTransactionEnvironment()
                                                .getTransactionFactory()
                                                .compatibleWithJtaSynchronization();
-                               
+
                                if ( !isJTA ) {
                                        // Explicitly handle the transactions only if we're not in
                                        // a JTA environment.  A lazy loading temporary session can
@@ -422,48 +414,43 @@ public abstract class AbstractLazyInitializer implements LazyInitializer {
        public void setUnwrap(boolean unwrap) {
                this.unwrap = unwrap;
        }
-       
+
        /** Below is section of code which makes remote service calls */
-       
-       private static ICdmApplicationConfiguration configuration;
+
+       private static CdmApplicationRemoteConfiguration configuration;
        private static boolean remoting = false;
-       
-       public static void setConfiguration(ICdmApplicationConfiguration conf) {
-               configuration = conf;
-               
-               if(conf instanceof CdmApplicationRemoteController) {
-                       remoting = true;
-               } else {
-                       remoting = false;
-               }
+
+       public static void setConfiguration(CdmApplicationRemoteConfiguration conf) {
+           remoting = true;
+           configuration = conf;
        }
-       
-       
-       private void remoteInitialize() {               
-               
-               if(!initialized) {                              
+
+
+       private void remoteInitialize() {
+
+               if(!initialized) {
                        int classid = ((Integer)getIdentifier()).intValue();
-                       log.debug("--> Remote Lazy Initializing" + getEntityName() + " with id " + classid);
+                       log.info("--> Remote Lazy Initializing Object " + getEntityName() + " with id " + classid);
                        Class clazz;
                        try {
-                               clazz = (Class<? extends CdmBase>) Class.forName(getEntityName());
+                               clazz = Class.forName(getEntityName());
                        } catch (ClassNotFoundException e) {
                                throw new HibernateException("Class for " + getEntityName() + " not found", e);
                        }
                        if(configuration == null) {
                                throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");
                        }
-                       ICommonService commonService = configuration.getCommonService();
-                       if(commonService == null) {
+                       ICachedCommonService cachedCommonService = configuration.getCachedCommonService();
+                       if(cachedCommonService == null) {
                                throw new HibernateException("commonService not initialized (null)");
                        }
-                       
-                       CdmBase cdmBase = CdmBase.deproxy(commonService.find(clazz,classid),clazz);
+
+                       CdmBase cdmBase = cachedCommonService.find(clazz,classid);
                        setImplementation(cdmBase);
-                       
+
                }
        }
-       
+
        public static boolean isInitialized(AbstractLazyInitializer obj) {
                return obj.initialized;
        }
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/cdmlib-ehcache.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/cdmlib-ehcache.xml
new file mode 100644 (file)
index 0000000..7ab604c
--- /dev/null
@@ -0,0 +1,6 @@
+<ehcache name="cdmlibModelCacheManager">
+       <diskStore path="ehcache.disk.store.dir/cdmlib" />
+       <cache name="cdmModelGetMethodsCache" maxElementsInMemory="0" maxElementsOnDisk="0" eternal="true"
+               overflowToDisk="true" diskPersistent="true" memoryStoreEvictionPolicy="LRU">
+       </cache>
+</ehcache>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/.svnignore b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/.svnignore
new file mode 100644 (file)
index 0000000..a09ae97
--- /dev/null
@@ -0,0 +1 @@
+cdmlib-remote-webapp.war
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war
new file mode 100644 (file)
index 0000000..7ae52f2
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar
new file mode 100644 (file)
index 0000000..91c88d6
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar
new file mode 100644 (file)
index 0000000..ef2faaf
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar differ
index 11a206b7e9f2b4e5b007e1cbaf9edbf160805298..6755057bd55e372b301caf9825b601d3f4b61759 100644 (file)
@@ -27,5 +27,6 @@
     <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.remote\.controller\..*Portal.*" /> 
   </context:component-scan>
   
+  <context:component-scan base-package="eu/etaxonomy/taxeditor/remoting/session/mock" />
 
 </beans>
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/mappings/hibernate.cfg.xml
new file mode 100644 (file)
index 0000000..53e2bbb
--- /dev/null
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE hibernate-configuration PUBLIC\r
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"\r
+ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">\r
+\r
+<hibernate-configuration>\r
+    <session-factory>\r
+\r
+      <property name="connection.release_mode">after_transaction</property>\r
+         <property name="show_sql">true</property>\r
+               <property name="format_sql">true</property>\r
+               <property name="use_sql_comments">true</property>\r
+\r
+      <!-- Connection Pooling -->\r
+<!--       <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property> -->\r
+      <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl</property>\r
+           <!--\r
+          Configuring the C3P0ConnectionProvider\r
+          ========================================\r
+          see http://www.mchange.com/projects/c3p0/index.html#hibernate-specific\r
+          and also org.springframework.orm.hibernate3.AbstractSessionFactoryBean.setDataSource(DataSource dataSource)\r
+\r
+          IMPORTANT:\r
+          Because of the constraint (1) the org.hibernate.connection.C3P0ConnectionProvider are not be used\r
+          for the Cdm Library because it requires the dataSource bean in some cases.\r
+\r
+          (1)\r
+          Do NOT specify the dataSource in the sessionFactory for example in the\r
+          org.springframework.orm.hibernate3.LocalSessionFactoryBean\r
+          !!!==> If *dataSource* is set, this will override corresponding settings in Hibernate properties.!!!\r
+                         If this is set, the Hibernate settings should not define a connection provider to\r
+                     avoid meaningless double configuration.\r
+          (2)\r
+          Hibernate uses the hibernate.c3p0.max_size property to determine if c3p0\r
+          is beeing used.  Therefore the max_size property MUST be set. - maybe not need in hibernate 3.4 +\r
+\r
+          (3) If you are using Hibernate's C3P0ConnectionProvider you must set the following properties\r
+          in your hibernate configuration, using hibernate-specific configuration keys.\r
+          All other properties must be defined as usual in a c3p0.properties file.\r
+          This is confusing, and will hopefully be simplified some time in the future, but for now...\r
+\r
+            hibernate.c3p0.acquire_increment\r
+                       hibernate.c3p0.idle_test_period\r
+                       hibernate.c3p0.timeout\r
+                       hibernate.c3p0.max_size\r
+                       hibernate.c3p0.max_statements\r
+                       hibernate.c3p0.min_size\r
+                       hibernate.c3p0.validate\r
+      -->\r
+      <mapping package="eu.etaxonomy.cdm.model.common"/>\r
+      <!-- Annotation Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.Address"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.AgentBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.Contact"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.Institution"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.InstitutionalMembership"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.Person"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.Team"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.agent.TeamOrPersonBase"/>\r
+      <!-- Common Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Annotation"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.AnnotationType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Credit"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.DefinedTerm"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.DefinedTermBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Extension"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.ExtensionType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.IdentifiableSource"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Identifier"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Group"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Language"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.LanguageString"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.LSID"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.LSIDAuthority"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Marker"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.MarkerType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.OrderedTerm"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.OrderedTermBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.OrderedTermVocabulary"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.OriginalSourceBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.RelationshipTermBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.Representation"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.TermVocabulary"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.common.User"/>\r
+      <!-- Description Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.description.AbsenceTerm"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.CategoricalData"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.CommonTaxonName"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.DescriptionBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.DescriptionElementSource"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.Distribution"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.Feature"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.FeatureNode"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.FeatureTree"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.KeyStatement"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.MediaKey"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.IndividualsAssociation"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.MeasurementUnit"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.MultiAccessKey"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.PolytomousKey"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.PolytomousKeyNode"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.PresenceTerm"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.QuantitativeData"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.SpecimenDescription"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.State"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.StateData"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.StatisticalMeasure"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.TaxonDescription"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.TaxonInteraction"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.TaxonNameDescription"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.TextData"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.TextFormat"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.description.WorkingSet"/>\r
+      <!-- Location Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.location.NamedArea"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.location.NamedAreaLevel"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.location.NamedAreaType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.location.ReferenceSystem"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.location.Point"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.location.Country"/>\r
+      <!-- Media Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.media.AudioFile"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.ImageFile"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.Media"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.MediaRepresentation"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.MediaRepresentationPart"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.MovieFile"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.Rights"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.media.RightsType"/>\r
+      <!-- Meta Data Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.metadata.CdmMetaData"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.metadata.CdmPreference"/>\r
+      <!-- Molecular Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.PhylogeneticTree"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.DnaQuality"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.DnaSample"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.Amplification"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.Primer"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.Sequence"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.SequenceString"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.SingleRead"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.molecular.Cloning"/>\r
+      <!-- Name Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.name.BacterialName"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.BotanicalName"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.CultivarPlantName"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.HomotypicalGroup"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.HybridRelationship"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.HybridRelationshipType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NameRelationship"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NameRelationshipType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NameTypeDesignation"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NomenclaturalCode"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NomenclaturalStatus"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NomenclaturalStatusType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.NonViralName"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.Rank"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.TaxonNameBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.TypeDesignationBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.ViralName"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.name.ZoologicalName"/>\r
+      <!-- Occurrence Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.Collection"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.DerivationEvent"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.DerivationEventType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.DerivedUnit"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.MaterialOrMethodEvent"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.MediaSpecimen"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.DeterminationEvent"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.FieldUnit"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.GatheringEvent"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.PreservationMethod"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase"/>\r
+      <!-- Reference Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.reference.Reference"/>\r
+\r
+      <!-- Taxon Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.Synonym"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationship"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.Taxon"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonBase"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.Classification"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonRelationship"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType"/>\r
+      \r
+      <!-- Validation Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.validation.EntityValidationResult"/>\r
+      <mapping class="eu.etaxonomy.cdm.model.validation.EntityConstraintViolation"/>\r
+      \r
+      <!-- View Package -->\r
+      <mapping class="eu.etaxonomy.cdm.model.view.AuditEvent"/>\r
+      \r
+      <!-- for filling caches -->\r
+      <!-- since hibernate 4 listeners are not handled via hibernate.cfg.xml anymore -->\r
+      <!--  http://stackoverflow.com/questions/8616146/eventlisteners-using-hibernate-4-0-with-spring-3-1-0-release\r
+            https://community.jboss.org/wiki/HibernateCoreMigrationGuide40 -->\r
+\r
+    </session-factory>\r
+</hibernate-configuration>
\ No newline at end of file
index d1bb5ee32f8e836f684323ae5059ad38fd953b75..ed2ce1fb8b1ccdfdfff769279eda992c1df954d8 100644 (file)
@@ -1,39 +1,47 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <beans xmlns="http://www.springframework.org/schema/beans"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \r
        xmlns:context="http://www.springframework.org/schema/context"\r
        xmlns:tx="http://www.springframework.org/schema/tx"\r
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
-       \r
-       \r
-    <!--  <bean id="remoteTermInitializer" class="eu.etaxonomy.cdm.remote.service.RemoteTermInitializer"/>-->\r
-        \r
-       <context:annotation-config/>\r
-    \r
-    <import resource="classpath:/eu/etaxonomy/cdm/httpInvokerServiceClients.xml"/>\r
-    \r
-    <bean id="cdmApplicationRemoteConfiguration" class="eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration"/>    \r
-    \r
-       <import resource="classpath:/eu/etaxonomy/cdm/remoting_services_security.xml"/>         \r
-       \r
-       <bean id="cdmTermCacher" class="eu.etaxonomy.cdm.api.cache.CdmTermCacher"/>\r
+    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
+\r
+\r
+       <!-- <bean id="remoteTermInitializer" class="eu.etaxonomy.cdm.remote.service.RemoteTermInitializer"/> -->\r
+\r
+       <context:annotation-config />\r
+\r
+       <import resource="classpath:/eu/etaxonomy/cdm/httpInvokerServiceClients.xml" />\r
+\r
+       <context:component-scan base-package="eu/etaxonomy/taxeditor/session" />\r
+\r
+       <bean id="cdmApplicationRemoteConfiguration"\r
+               class="eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration" />\r
+\r
+       <import resource="classpath:/eu/etaxonomy/cdm/remoting_services_security.xml" />\r
+\r
+       <context:component-scan base-package="eu.etaxonomy.cdm.api.cache">\r
+               <!-- FIXME:Remoting Temp workaround to make remoting work -->\r
+               <context:exclude-filter type="regex"\r
+                       expression="eu\.etaxonomy\.cdm\.api\.cache\.CdmDaoCacher" />\r
+       </context:component-scan>\r
+\r
        \r
+\r
        \r
-       <!-- EditGeoService was moved to ext. Therefore it will not be found by the default component scan.
-       We added it here because the Editor needs it. However, this is only a temporary solution.
-       In the future we want to pass in an application context with the editor. -->\r
+       <!-- EditGeoService was moved to ext. Therefore it will not be found by \r
+               the default component scan. We added it here because the Editor needs it. \r
+               However, this is only a temporary solution. In the future we want to pass \r
+               in an application context with the editor. -->\r
 \r
 \r
-       <!-- <bean id="conversationHolder" class="eu.etaxonomy.cdm.api.conversation.ConversationHolder" scope="prototype"/> -->\r
+       <!-- <bean id="conversationHolder" class="eu.etaxonomy.cdm.api.conversation.ConversationHolder" \r
+               scope="prototype"/> -->\r
 \r
        <!-- TODO move to io -->\r
-<!-- \r
-       <context:component-scan base-package="eu/etaxonomy/cdm/io">\r
-               <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.io\.berlinModel.*" />\r
-       </context:component-scan>\r
- -->\r
+       <!-- <context:component-scan base-package="eu/etaxonomy/cdm/io"> <context:exclude-filter \r
+               type="regex" expression="eu\.etaxonomy\.cdm\.io\.berlinModel.*" /> </context:component-scan> -->\r
        <!-- enable the configuration of transactional behavior based on annotations -->\r
        <!-- <tx:annotation-driven transaction-manager="transactionManager"/> -->\r
 \r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties
new file mode 100644 (file)
index 0000000..749216d
--- /dev/null
@@ -0,0 +1,26 @@
+#\r
+#\r
+# If you are having problems with logging you may debug Log4J initialization,\r
+# start the application with a system property log4j.configDebug set to "true".\r
+# E.g.:\r
+#\r
+#     java -Dlog4j.configDebug=true\r
+#\r
+\r
+log4j.rootLogger=WARN, stdout\r
+\r
+\r
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n\r
+\r
+##\r
+## NOTICE !!!!\r
+## no need to configure a FileAppender here\r
+## use eu.etaxonomy.cdm.remote.config.LoggingConfigurer instead\r
+##\r
+\r
+###\r
+# cdm\r
+###\r
+log4j.logger.eu.etaxonomy.cdm = INFO\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java
new file mode 100644 (file)
index 0000000..5e5dcb5
--- /dev/null
@@ -0,0 +1,430 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.cache;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.KeyStatement;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
+import eu.etaxonomy.taxeditor.session.MockSessionOwner;
+
+/**
+ * @author cmathew
+ * @date 7 Oct 2014
+ *
+ */
+@DataSet
+public class CdmClientCachingTest extends BaseRemotingTest {
+
+    private static final Logger logger = Logger.getLogger(CdmClientCachingTest.class);
+
+    private UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+    private UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
+    private UUID polytomousKeyNodeUuid1 = UUID.fromString("75e4c924-ff58-4ee7-a59d-fd9173517d08");
+    private UUID polytomousKeyNodeUuid2 = UUID.fromString("b775c027-13c0-4b87-8aa9-712faeaafbdc");
+
+
+    private IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+    private IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
+    private ICommonService commonService = getRemoteApplicationController().getCommonService();
+    private ITaxonService taxonService = getRemoteApplicationController().getTaxonService();    
+    
+    
+       private CdmTransientEntityCacher cacher;
+    private ISessionEventListener sessionOwner;
+       
+    private static final List<String> PKEY_DEPTH1_INIT_STRATEGY = Arrays.asList(new String[] {
+                       });
+    
+    private static final List<String> PKEY_DEPTH2_INIT_STRATEGY = Arrays.asList(new String[] {
+               "root"});
+    
+    private static final List<String> PKEY_DEPTH3_INIT_STRATEGY = Arrays.asList(new String[] {                 
+               "root.statement"});
+    
+
+    
+    @BeforeClass
+    public static void initializePolytomousKeyTest() {
+        logger.setLevel(Level.INFO);
+        CDMServer.getInstance().setKeepServerRunning(true);                    
+    }
+
+    @Before
+    public void initializeSession() {
+       sessionOwner = new MockSessionOwner();    
+       cdmEntitySessionManager.bind(sessionOwner);
+       cacher = getCacher(sessionOwner);
+    }    
+
+
+    
+    @Test
+    public void recursiveLoadSubGraphDepth1Test() {
+
+       // this call will load into the session cache the graph 
+       // polytomous key  
+       //      |- root : polytomous key node 
+       // in a recursive call          
+        PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH1_INIT_STRATEGY),PolytomousKey.class);
+        pkey1 = cdmEntitySessionManager.load(sessionOwner, pkey1);
+        
+        // checking to make sure the root object is in the session cache
+        Assert.assertSame(pkey1.getRoot(), cacher.getFromCache(pkey1.getRoot()));
+        
+    }
+
+    
+    @Test
+    public void recursiveLoadSubGraphDepth2Test() {
+
+       // this call will load into the session cache the graph 
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+       // in a recursive call          
+        PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+        pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+        CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+        // checking to make sure the root object is in the session cache
+        Assert.assertSame(pkey.getRoot(), cacher.getFromCache(pkey.getRoot()));
+        Assert.assertSame(pkey.getRoot().getStatement(), cacher.getFromCache(pkey.getRoot().getStatement()));
+        Assert.assertSame(pkey.getRoot().getQuestion(), cacher.getFromCache(pkey.getRoot().getQuestion()));
+        
+    }
+        
+    /**
+     * when : retrieving objects using recursive caching of object graphs with different depths 
+     * then : the objects in the sub-graph having the same persistence id should be the same
+     */
+    @Test
+    public void lazyLoadRecursiveTest() {
+
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pkey1 = cdmEntitySessionManager.load(sessionOwner, pkey1);
+        CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+               
+    }
+    
+
+    /**
+     * when : retrieving objects using recursive caching of object graphs with different depths      
+     * then : the objects in the sub-graph having the same persistence id should be the same
+     */
+    @Test
+    public void differentSubGraphDepthTest1() {
+       
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       // in a recursive call    
+        PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH1_INIT_STRATEGY),PolytomousKey.class);
+        pkey1 = cdmEntitySessionManager.load(sessionOwner, pkey1);
+        CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+               
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement            
+        PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+        pkey2 = cdmEntitySessionManager.load(sessionOwner, pkey2);
+
+        Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement()));
+        Assert.assertSame(pkey1.getRoot().getStatement(), pkey2.getRoot().getStatement());
+        Assert.assertSame(cacher.getFromCache(pkey1.getRoot().getStatement()), cacher.getFromCache(pkey2.getRoot().getStatement()));
+        
+    }
+    
+    /**
+     * when : retrieving objects using recursive caching of object graphs with different depths 
+     * then : the objects in the sub-graph having the same persistence id should be the same
+     */
+    @Test
+    public void differentSubGraphDepthTest2() {
+
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+        pkey1 = cdmEntitySessionManager.load(sessionOwner, pkey1);
+        CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+               
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node  
+        PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH1_INIT_STRATEGY),PolytomousKey.class);
+        pkey2 = cdmEntitySessionManager.load(sessionOwner, pkey2);
+
+        Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement()));
+        Assert.assertSame(pkey1.getRoot().getStatement(), pkey2.getRoot().getStatement());
+        Assert.assertSame(cacher.getFromCache(pkey1.getRoot().getStatement()), cacher.getFromCache(pkey2.getRoot().getStatement()));
+    }
+    
+    /**
+     * when : retrieving objects using (first) recursive load directly and (second) lazy loading in the same session
+     * then : the objects in the sub-graph having the same persistence id should be the same
+     */
+    @Test
+    public void recursiveLoadAndLazyLoadTest() {
+       
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+        pkey1 = cdmEntitySessionManager.load(sessionOwner, pkey1);
+        CdmTransientEntityCacher cacher = getCacher(sessionOwner);
+               
+        // checking that the root is not null and 
+        // that it exists in the cache and
+        // that both the original object and the 
+        // cached object are the same
+        Assert.assertNotNull(pkey1.getRoot().getStatement());
+        Assert.assertNotNull(cacher.getFromCache(pkey1.getRoot().getStatement()));
+        
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node  
+        PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pkey2 = cdmEntitySessionManager.load(sessionOwner, pkey2);
+
+        
+        Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement()));
+        Assert.assertSame(pkey1.getRoot().getStatement(), pkey2.getRoot().getStatement());
+        Assert.assertSame(cacher.getFromCache(pkey1.getRoot().getStatement()), cacher.getFromCache(pkey2.getRoot().getStatement()));
+    }
+    
+    /**
+     * when : retrieving objects using (first) lazy loading  and (second) recursive load directly in the same session
+     * then : the objects in the sub-graph having the same persistence id should be the same
+     */
+    @Test
+    public void lazyLoadAndRecursiveLoadTest() {
+
+
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node  
+       
+       PolytomousKey pkey1 = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pkey1 = cdmEntitySessionManager.load(sessionOwner, pkey1);
+        
+        // lazy initialising root.statement
+        KeyStatement st = CdmBase.deproxy(pkey1.getRoot().getStatement(), KeyStatement.class); 
+        st.getLabel();
+        
+        // checking that the root is not null and 
+        // that it exists in the cache and
+        // that both the original object and the 
+        // cached object are the same
+       Assert.assertNotNull(pkey1.getRoot().getStatement());
+       Assert.assertSame(CdmBase.deproxy(pkey1.getRoot().getStatement(), KeyStatement.class),
+                       cacher.getFromCache(pkey1.getRoot().getStatement(), KeyStatement.class));
+       
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        
+       PolytomousKey pkey2 = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+       pkey2 = cdmEntitySessionManager.load(sessionOwner, pkey2);
+
+       Assert.assertSame(pkey2.getRoot().getStatement(), cacher.getFromCache(pkey2.getRoot().getStatement(), KeyStatement.class));
+       Assert.assertSame(st, pkey2.getRoot().getStatement());
+       Assert.assertSame(cacher.getFromCache(st), cacher.getFromCache(pkey2.getRoot().getStatement(), KeyStatement.class));
+    }
+    
+
+
+
+    
+    /**
+     * when : loading an object (first) and then (second) loading a graph the object is contained in, in the same session
+     * then : the object should be the same
+     */
+    @Test
+    public void subGraphObjectLoadTest1() {
+
+       // this call will load into the session cache a polytomous key node object              
+       PolytomousKeyNode rootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid1),PolytomousKeyNode.class);
+       rootPKNode = cdmEntitySessionManager.load(sessionOwner, rootPKNode);
+
+       Assert.assertNotNull(rootPKNode);
+       Assert.assertSame(rootPKNode, cacher.getFromCache(rootPKNode));
+       
+       PolytomousKeyNode childOfRootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid2),PolytomousKeyNode.class);
+       childOfRootPKNode = cdmEntitySessionManager.load(sessionOwner, childOfRootPKNode);
+       
+       Assert.assertNotNull(childOfRootPKNode);
+       Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+       
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        
+       PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+       pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+       
+       Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+       Assert.assertSame(pkey.getRoot().getChildAt(1), childOfRootPKNode);
+    }
+
+    /**
+     * when : loading a graph (first) and then (second) loading an object contained in in the graph, in the same session
+     * then : the object should be the same
+     */
+    @Test
+    public void subGraphObjectLoadTest2() {
+
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        
+       PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+       pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+       
+       // this call will load into the session cache a polytomous key node object              
+       PolytomousKeyNode rootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid1),PolytomousKeyNode.class);
+       rootPKNode = cdmEntitySessionManager.load(sessionOwner, rootPKNode);
+
+       Assert.assertNotNull(rootPKNode);
+       Assert.assertSame(rootPKNode, cacher.getFromCache(rootPKNode));
+       
+       PolytomousKeyNode childOfRootPKNode = CdmBase.deproxy(polytomousKeyNodeService.find(polytomousKeyNodeUuid2),PolytomousKeyNode.class);
+       childOfRootPKNode = cdmEntitySessionManager.load(sessionOwner, childOfRootPKNode);
+       
+       Assert.assertNotNull(childOfRootPKNode);
+       Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));           
+       
+       Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+       Assert.assertSame(pkey.getRoot().getChildAt(1), childOfRootPKNode);
+    }
+
+    
+    /**
+     * when : loading objects from a collection 
+     * then : the object stored in the cache should be the same
+     */
+    @Test
+    public void subGraphCollectionLoadTest() {
+       
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        
+       PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH2_INIT_STRATEGY),PolytomousKey.class);
+       pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+       
+       PolytomousKeyNode childOfRootPKNode = pkey.getRoot().getChildAt(1);
+       
+       Assert.assertSame(childOfRootPKNode, cacher.getFromCache(childOfRootPKNode));
+       Assert.assertSame(pkey.getRoot().getChildAt(1), childOfRootPKNode);
+       
+    }
+    
+    /**
+     * when : loading a non-lazy collection in a subgraph and loading the collection directly
+     * then : the object stored in the cache should be the same as the object in the sub-graph collection and 
+     *        the object in the directly loaded collection
+     */
+    @Test
+    public void nonLazyCollectionLoadTest() {
+       // need to find an example of this
+    }
+    
+    /**
+     * when : loading objects from a map
+     * then : the object stored in the cache should be the same
+     */
+    @Test
+    public void subGraphMapLoadTest() {
+       
+       Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+        Language hindi = Language.getLanguageFromUuid(UUID.fromString("0a1d9d1d-135d-4575-b172-669b51673c39"));
+        
+        
+       // this call will load into the session cache the graph and update the objects in the sub-graph for a
+       // polytomous key  
+       //      |- root : polytomous key node 
+       //              |- question : KeyStatement
+       //              |- statement : KeyStatement     
+        
+       PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid, PKEY_DEPTH3_INIT_STRATEGY),PolytomousKey.class);
+       pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+       
+       Map<Language, LanguageString> labelMap = pkey.getRoot().getStatement().getLabel();
+       Set<Language> languages = labelMap.keySet();
+       Iterator<Language> languagesItr = languages.iterator();
+       while(languagesItr.hasNext()) {
+               Language lang = languagesItr.next();
+               if(lang.equals(english)) {
+                       Assert.assertSame(lang, english);                       
+               }
+               if(lang.equals(hindi)) {
+                       Assert.assertSame(lang, hindi);
+               }
+               Assert.assertSame(lang, cacher.getFromCache(lang));
+       }       
+    }
+    
+    /**
+     * when : loading a non-lazy map in a subgraph and loading the map directly
+     * then : the object stored in the cache should be the same as the object in the sub-graph map and 
+     *        the object in the directly loaded map
+     */
+    @Test
+    public void nonLazyMapLoadTest() {
+       // need to find an example of this
+    }
+    
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmModelGetMethodCacherTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/api/cache/CdmModelGetMethodCacherTest.java
new file mode 100644 (file)
index 0000000..44bced2
--- /dev/null
@@ -0,0 +1,62 @@
+package eu.etaxonomy.cdm.api.cache;
+
+import java.io.IOException;
+import java.util.List;
+
+import net.sf.ehcache.Cache;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+
+import eu.etaxonomy.cdm.api.cache.CdmRemoteCacheManager.CdmCacheManagerType;
+
+
+public class CdmModelGetMethodCacherTest {
+
+       private static final Logger logger = Logger.getLogger(CdmModelGetMethodCacherTest.class);
+
+    public static final Resource CDMLIB_DISK_STORE_RESOURCE =
+            new ClassPathResource("/eu/etaxonomy/cache");
+    
+    
+
+       @Test
+       public void cacheGettersTest() {
+               
+               Logger.getRootLogger().setLevel(Level.INFO);
+               try {
+                       System.setProperty("ehcache.disk.store.dir", CDMLIB_DISK_STORE_RESOURCE.getFile().getAbsolutePath());
+               } catch (IOException e) {
+                       throw new CdmClientCacheException(e);
+               }               
+               CdmModelCacher cmdmc = new CdmModelCacher();
+               
+               //cmdmc.checkGetterMethods();
+               
+               cmdmc.cacheGetterFields();
+
+                                               
+               Cache cdmlibCache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+               List<CdmModelFieldPropertyFromClass> cmgmfcList = cmdmc.getCdmModelGetMethodFromClassList();
+               
+               List<Object> keys = cdmlibCache.getKeys();
+               Assert.assertEquals(cmgmfcList.size(), keys.size());
+                               
+               for(CdmModelFieldPropertyFromClass cmgmfc: cmgmfcList) {
+                       String className = cmgmfc.getClassName();
+                       Assert.assertTrue(keys.contains(className));
+                       logger.info("Class Name : " + className + " has been cached");
+               }
+               cdmlibCache.removeAll();
+               cdmlibCache.flush();
+               CdmRemoteCacheManager.getInstance().shutdown(CdmCacheManagerType.CDMLIB_MODEL);
+       }
+
+       
+        
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.java
new file mode 100644 (file)
index 0000000..dfdf793
--- /dev/null
@@ -0,0 +1,301 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.polytomouskey;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Credit;
+import eu.etaxonomy.cdm.model.common.Extension;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.KeyStatement;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.model.media.Rights;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
+import eu.etaxonomy.taxeditor.session.MockSessionOwner;
+
+/**
+ * @author cmathew
+ * @date 7 Oct 2014
+ *
+ */
+@DataSet
+public class PolytomousKeyTest extends BaseRemotingTest {
+
+    private static final Logger logger = Logger.getLogger(PolytomousKeyTest.class);
+
+    UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+    UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
+
+
+    IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+    ICommonService commonService = getRemoteApplicationController().getCommonService();
+    ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+
+    
+       private CdmTransientEntityCacher cacher;
+    private ISessionEventListener sessionOwner;
+    
+    Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+    
+    
+    @BeforeClass
+    public static void initializePolytomousKeyTest() {
+        logger.setLevel(Level.INFO);
+        CDMServer.getInstance().setKeepServerRunning(true);       
+    }
+
+    @Before
+    public void initializeSession() {
+       sessionOwner = new MockSessionOwner();    
+       cdmEntitySessionManager.bind(sessionOwner);
+       cacher = getCacher(sessionOwner);
+    }
+    
+    @Test
+    public void readAllPolytomousKeys() {
+        List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
+        Iterator<PolytomousKey> pKeysItr = pKeys.iterator();
+        Assert.assertEquals(pKeysItr.next().getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
+        Assert.assertEquals(pKeysItr.next().getUuid(),UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));        
+    }
+
+
+    @Test
+    //@DataSet("PolytomousKeyTest.readPolytmousKeyData.xml")
+    public void readPolytmousKeyData() {
+        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        Set<Taxon> taxonomicScope = pKey.getTaxonomicScope();
+        Iterator<Taxon> tsItr = taxonomicScope.iterator();
+        Taxon taxon = tsItr.next();
+        
+        Assert.assertEquals("Achillea sec. Cyprus", taxon.getTitleCache());
+        Assert.assertEquals(tsItr.hasNext(), false);
+
+        List<Credit> credits = pKey.getCredits();
+        AgentBase agent = credits.get(0).getAgent();
+        Assert.assertEquals(agent.getId(),4809);
+        Assert.assertEquals(agent.getTitleCache(),"R. A. Graham");
+        Assert.assertEquals(credits.get(0).getText(),"Credits Text Test");
+
+        Set<Extension> exts = pKey.getExtensions();
+        Iterator<Extension> extItr = exts.iterator();
+        Extension ext = extItr.next();
+        Assert.assertEquals(ext.getValue(), "http://test.com");
+
+        Set<Rights> rights = pKey.getRights();
+        Iterator<Rights> rightsItr = rights.iterator();
+        Rights right = rightsItr.next();
+        Assert.assertEquals(right.getText(),"Rights Text Test");
+
+        Set<IdentifiableSource> sources = pKey.getSources();
+        Iterator<IdentifiableSource> sourcesItr = sources.iterator();
+        IdentifiableSource source = sourcesItr.next();
+        Assert.assertEquals(source.getId(), 23710);
+        source = sourcesItr.next();
+        Assert.assertEquals(source.getId(), 23711);
+
+        // TO DO : Added tests for Annotations , Markers
+    }
+
+    @Test
+    public void readPolytomousKeyDataFromNodes() {
+        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        PolytomousKeyNode rootNode = pKey.getRoot();
+
+
+        Assert.assertEquals(rootNode.getId(), 2750);
+
+        Assert.assertEquals(rootNode.getChildAt(0).getId(), 2751);
+        Assert.assertEquals(rootNode.getChildAt(0).getParent().getId(), rootNode.getId());
+        Assert.assertEquals(rootNode.getKey().getId(), pKey.getId());
+        Integer sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(0), "sortIndex");
+        Assert.assertEquals(sortIndex, new Integer(0));
+        String statement = "Capitula without ligulate ray-florets; leaves entire or subentire";
+        Assert.assertEquals(rootNode.getChildAt(0).getStatement().getLabelText(english), statement);
+
+        Assert.assertEquals(rootNode.getChildAt(1).getId(), 2753);
+        Assert.assertEquals(rootNode.getChildAt(1).getParent().getId(), rootNode.getId());
+        Assert.assertEquals(rootNode.getChildAt(1).getKey().getId(), pKey.getId());
+        sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1), "sortIndex");
+        Assert.assertEquals(sortIndex, new Integer(1));
+        statement = "Capitula with ligulate ray-florets; leaves pinnatisect";
+        Assert.assertEquals(rootNode.getChildAt(1).getStatement().getLabelText(english), statement);
+
+        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getId(), 2754);
+        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getParent().getId(), rootNode.getChildAt(1).getId());
+        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getKey().getId(), pKey.getId());
+        sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1).getChildAt(0), "sortIndex");
+        Assert.assertEquals(sortIndex, new Integer(0));
+        statement = "Ray-florets yellow";
+        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getStatement().getLabelText(english), statement);
+        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getChildAt(0).getTaxon().getTitleCache(), "Achillea arabica Kotschy sec. Cyprus");
+    }
+
+    @Test
+    public void savePolytomousKeyNodeData() {
+        PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+        PolytomousKeyNode pkeynode = pkey.getRoot();
+        String newQuestion = "New Question";
+        String newStatement = "New Statement";
+
+        Assert.assertEquals("Question 1",pkeynode.getQuestion().getLabel().get(english).getText());
+        for(PolytomousKeyNode node : pkeynode.getChildren()) {
+
+            node.setQuestion(null);
+            node.setStatement(null);
+        }
+        //FIXME:Remoting Add tests for feature after fixing problem
+
+        //Feature feature = pkeynode.getFeature();
+        //Assert.assertEquals(feature.getTitleCache(),"Systematics");
+        //pkeynode.setFeature(null);
+
+        Assert.assertEquals(pkeynode.getChildAt(0).getModifyingText().get(english).getText(),"Modifying Text 1a");
+        String modifyingText = "Modifying Text 1a updated";
+
+        //pkeynode.getChildAt(0).putModifyingText(english, modifyingText);
+
+        Assert.assertEquals(pkeynode.getChildAt(0).getSubkey().getId(),1550);
+        Assert.assertEquals("Achillea", pkeynode.getChildAt(0).getSubkey().getTitleCache());
+        Assert.assertNull(pkeynode.getChildAt(1).getTaxon());
+        Taxon taxon = CdmBase.deproxy(taxonService.find(taxon1Uuid),Taxon.class);
+        pkeynode.getChildAt(1).setTaxon(taxon);
+
+        polytomousKeyService.merge(pkey);
+
+        pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        sessionOwner = new MockSessionOwner();
+        pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+        
+        pkeynode = pkey.getRoot();
+        for(PolytomousKeyNode node : pkeynode.getChildren()) {
+            Assert.assertNull(node.getQuestion());
+            node.setQuestion(KeyStatement.NewInstance(english,newQuestion));
+            Assert.assertNull(node.getStatement());
+            node.setStatement(KeyStatement.NewInstance(english,newStatement));
+        }
+
+        
+        Assert.assertEquals(pkeynode.getChildAt(1).getTaxon(), taxon);
+
+        polytomousKeyService.merge(pkey);
+
+        pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        sessionOwner = new MockSessionOwner();
+        pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+        
+        pkeynode = pkey.getRoot();
+        for(PolytomousKeyNode node : pkeynode.getChildren()) {
+            Assert.assertNotNull(node.getQuestion());
+            Map<Language, LanguageString> label = node.getQuestion().getLabel();
+            Assert.assertEquals(newQuestion, label.get(english).getText());
+            Assert.assertNotNull(node.getStatement());
+            Assert.assertEquals(newStatement, node.getStatement().getLabel(english).getText());
+        }
+        //Assert.assertEquals(pkeynode.getFeature().getId(), feature.getId());
+
+    }
+
+    @Test
+    public void savePolytomousKeyNodeDataWithSameSubKey() {
+        
+       ISessionEventListener sessionOwner = new MockSessionOwner();
+       cdmEntitySessionManager.bind(sessionOwner);
+        PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+        
+        PolytomousKeyNode pkeynode = pkey.getRoot();
+
+        PolytomousKey subkey1 = CdmBase.deproxy(pkeynode.getChildAt(0).getSubkey(), PolytomousKey.class);
+        String subkey1title = subkey1.getTitleCache();
+        subkey1.setTitleCache(subkey1title + "test", true);
+
+
+        PolytomousKey subkey2 = CdmBase.deproxy(pkeynode.getChildAt(1).getChildAt(0).getSubkey(), PolytomousKey.class);
+        String subkey2title = subkey2.getTitleCache();
+        subkey2.setTitleCache(subkey2title + "test", true);
+
+        Assert.assertSame(subkey1, subkey2);
+
+        polytomousKeyService.merge(pkey);
+    }
+
+    @Test
+    public void savePolytomousKeyNodeDataWithSameSubKeyUsingService() {
+       
+        PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pkey = cdmEntitySessionManager.load(sessionOwner, pkey);
+        
+        PolytomousKeyNode pkeynode = pkey.getRoot();
+
+        PersistentCollection children = (PersistentCollection) pkeynode.getChildren();
+        PolytomousKeyNode childNode0 = (PolytomousKeyNode)commonService.get(children, 0);
+        PolytomousKey subkey1 = CdmBase.deproxy(childNode0.getSubkey(),PolytomousKey.class);
+        String subkey1title = subkey1.getTitleCache();
+        subkey1.setTitleCache(subkey1title + "test", true);
+
+        PolytomousKeyNode childNode1 = (PolytomousKeyNode)commonService.get(children, 1);
+        PolytomousKey subkey2 = CdmBase.deproxy(childNode1.getSubkey(),PolytomousKey.class);
+        String subkey2title = subkey2.getTitleCache();
+        subkey2.setTitleCache(subkey2title + "test", true);
+
+        Assert.assertNotSame(childNode0, childNode1);
+        
+        Assert.assertSame(subkey1, subkey2);
+
+        polytomousKeyService.merge(pkey);
+    }
+
+
+    @Test
+    public void savePolytomousKeyNodeDataWithSameLanguageInLabel() {
+        PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        PolytomousKeyNode pkeynode = pkey.getRoot();
+
+        Map<Language, LanguageString> label1 = pkeynode.getQuestion().getLabel();
+        label1.size();
+
+
+        Map<Language, LanguageString> label2 = pkeynode.getChildAt(0).getStatement().getLabel();
+        label2.size();
+
+
+        polytomousKeyService.merge(pkey);
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/exception/CDMServerException.java
new file mode 100644 (file)
index 0000000..ed2b691
--- /dev/null
@@ -0,0 +1,31 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.exception;
+
+/**
+ * @author cmathew
+ * @date 23 Sep 2014
+ *
+ */
+public class CDMServerException extends Exception {
+
+    public CDMServerException(String message) {
+        super(message);
+    }
+
+    public CDMServerException(Exception e) {
+        super(e);
+    }
+
+    public CDMServerException(String message,Exception e) {
+        super(message,e);
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java
new file mode 100644 (file)
index 0000000..584c266
--- /dev/null
@@ -0,0 +1,170 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.unitils.UnitilsJUnit4;
+import org.unitils.database.DatabaseUnitils;
+import org.unitils.database.annotations.Transactional;
+import org.unitils.database.util.TransactionMode;
+import org.unitils.spring.annotation.SpringApplicationContext;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.cache.CdmClientCacheException;
+import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
+
+
+/**
+ * Base class for remoting tests, responsible for
+ * - starting / stop the cdm server
+ * - running some basic connection tests
+ * - setting up the remote configuration.
+ *
+ */
+@Transactional(TransactionMode.DISABLED)
+@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml")
+public class BaseRemotingTest extends UnitilsJUnit4 {
+    //private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+
+    private static final Resource TEST_REMOTE_APPLICATION_CONTEXT_RESOURCE =
+            new ClassPathResource("/eu/etaxonomy/cdm/testRemotingApplicationContext.xml");
+
+    private static CdmApplicationRemoteController remoteApplicationController;
+    private static ICdmRemoteSource cdmRemoteSource;
+    private static CdmPersistentRemoteSource remotePersistentSource;
+
+    public static boolean useManagedServer = true;
+
+    public static final Resource CDMLIB_DISK_STORE_RESOURCE =
+            new ClassPathResource("/eu/etaxonomy/cache");
+    
+    protected static ICdmEntitySessionManager cdmEntitySessionManager;
+    
+    @BeforeClass
+    public static void initializeBaseRemotingTest() {
+        //NOTE: Run this the cdmTest H2 DB whenever it needs to be
+       //      recreated e.g. after a model change
+       //DatabaseUnitils.disableConstraints();
+
+               try {
+                       System.setProperty("ehcache.disk.store.dir", CDMLIB_DISK_STORE_RESOURCE.getFile().getAbsolutePath());
+               } catch (IOException e) {
+                       throw new CdmClientCacheException(e);
+               }
+        
+        useManagedServer = (System.getProperty("use.managed.server") == null) ? useManagedServer : Boolean.valueOf(System.getProperty("use.managed.server"));
+        if(useManagedServer) {
+            try {
+                CDMServer.getInstance().start();
+            } catch (Exception e) {
+                e.printStackTrace();
+                Assert.fail("Server failed to start. Reason : " + e.getMessage());
+            }
+
+        initializeController(CDMServer.getInstance().getName(),
+                CDMServer.getInstance().getHost(),
+                CDMServer.getInstance().getPort(),
+                CDMServer.getInstance().getContextPath(),
+                NomenclaturalCode.ICNAFP);
+        }
+    }
+
+    
+    @Test
+    public void disableConstraints() {
+       // To be run on the src/test/resources/h2/cdmTest h2 db after
+       // updating the unitils.properties 'database.url' property
+       DatabaseUnitils.disableConstraints();
+    }
+    public static void initializeController(String sourceName, String host, int port, String contextPath, NomenclaturalCode ncode) {
+
+        cdmRemoteSource = CdmRemoteSource.NewInstance(sourceName, host, port, contextPath, ncode);
+        remoteApplicationController =
+                CdmApplicationRemoteController.NewInstance(cdmRemoteSource,
+                        false,
+                        null,
+                        null);
+
+        try {
+            remotePersistentSource = CdmPersistentRemoteSource.NewInstance(sourceName);
+        } catch (CdmRemoteSourceException e) {
+            Assert.fail("Default Remote Persistent Source failed to load. Reason : " + e.getMessage());
+        }
+        cdmEntitySessionManager = getRemoteApplicationController().getCdmEntitySessionManager();
+    }
+
+
+
+    protected static CdmApplicationRemoteController getRemoteApplicationController() {
+        return remoteApplicationController;
+    }
+
+    protected static ICdmRemoteSource getCdmRemoteSource() {
+        return cdmRemoteSource;
+    }
+
+    protected static CdmPersistentRemoteSource getCdmPersistentRemoteSource() {
+        return remotePersistentSource;
+    }
+    
+    protected static ICdmEntitySessionManager getCdmEntitySessionManager() {
+       return cdmEntitySessionManager;
+    }
+    
+    protected static CdmTransientEntityCacher getCacher(ISessionEventListener sessionOwner) {
+       return (CdmTransientEntityCacher) getFieldValueViaReflection(cdmEntitySessionManager.getSession(sessionOwner), "cdmTransientEntityCacher");
+    }
+
+    @AfterClass
+    public static void cleanup() {
+        try {
+            CDMServer.getInstance().stop();
+        } catch (Exception e) {
+            Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+        }
+    }
+
+
+    protected static Object getFieldValueViaReflection(Object object, String fieldName) {
+        Class<?> clazz = object.getClass();
+        try {
+            Field field = clazz.getDeclaredField(fieldName);
+            field.setAccessible(true);
+            return field.get(object);
+        } catch (NoSuchFieldException e) {
+            e.printStackTrace();
+        } catch (SecurityException e) {
+            e.printStackTrace();
+        } catch (IllegalArgumentException e) {
+            e.printStackTrace();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java
new file mode 100644 (file)
index 0000000..69d2a9f
--- /dev/null
@@ -0,0 +1,350 @@
+// $Id$
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.Socket;
+
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.unitils.database.annotations.TestDataSource;
+import org.unitils.spring.annotation.SpringApplicationContext;
+
+import eu.etaxonomy.taxeditor.exception.CDMServerException;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceBase;
+
+/**
+ *
+ * (Singleton) Server instance which manages a compatible cdmlib-webapp-war.
+ * This is done by launching a jetty instance (using jetty-runner) as an
+ * executed process. The choice of the external process over a more
+ * preferable 'embedded jetty' instance is due to problems arising from the
+ * class loading of classes (e.g. from hibernate core) which are needed
+ * for both the webapp as well as the remoting client.
+ *
+ * @author cmathew
+ * @date 23 Sep 2014
+ *
+ */
+
+public class CDMServer {
+
+    public static final Logger logger = Logger.getLogger(CDMServer.class);
+
+    @TestDataSource
+    protected DataSource dataSource;
+
+    private final String name = "default";
+    private final String host = "127.0.0.1";
+    private final int port = 9090;
+    private final int stopPort = 9191;
+    private final String stopKey = "jetty-cdm-server";
+    private final String contextPath = "";
+
+    private boolean keepServerRunning = false;
+
+    public static final Resource DEFAULT_CDM_WEBAPP_RESOURCE =
+            new ClassPathResource("/etc/jetty/cdmlib-remote-webapp.war");
+
+    public static final Resource DEFAULT_JETTY_CONFIG_RESOURCE =
+            new ClassPathResource("/etc/jetty/jetty.xml");
+
+    public static final Resource DEFAULT_JETTY_TEMP_RESOURCE =
+            new ClassPathResource("/etc/jetty/temp");
+
+    public static final Resource DEFAULT_JETTY_TEMP_WAR_LIB_RESOURCE =
+            new ClassPathResource("/etc/jetty/temp/webapp/WEB-INF/lib");
+
+    public static final Resource DEFAULT_DATASOURCE_FILE =
+            new ClassPathResource("datasources.xml");
+
+    public static final Resource DEFAULT_JETTY_RUNNER_RESOURCE =
+            new ClassPathResource("/etc/jetty/jetty-runner-9.2.3.v20140905.jar");
+
+    public static final Resource DEFAULT_JETTY_RESOURCE =
+            new ClassPathResource("/etc/jetty/start-9.2.3.v20140905.jar");
+
+
+
+    private static CDMServer cdmServer = null;
+    private static CDMServerException cdmse = null;
+
+    private void CDMServer() {
+        logger.setLevel(Level.INFO);
+    }
+
+    public static CDMServer getInstance() {
+        if(cdmServer == null) {
+            cdmServer = new CDMServer();
+        }
+        return cdmServer;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public String getContextPath() {
+        return contextPath;
+    }
+
+    public boolean getKeepServerRunning() {
+        return keepServerRunning;
+    }
+
+    public void setKeepServerRunning(boolean keepServerRunning) {
+        this.keepServerRunning = keepServerRunning;
+    }
+
+    public static boolean isRunningInEclipse() {
+        return (System.getProperty("sun.java.command") != null &&
+                System.getProperty("sun.java.command").startsWith("org.eclipse.jdt.internal.junit.runner.RemoteTestRunner"));
+    }
+
+    private String getVMArgs() throws IOException {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" -Dspring.profiles.active=remoting");
+        sb.append(" -Dcdm.beanDefinitionFile=" + DEFAULT_DATASOURCE_FILE.getFile().getAbsolutePath());
+        sb.append(" -Dcdm.datasource=cdmTest");
+        return sb.toString();
+    }
+
+    private String getStartServerArgs() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" --port ");
+        sb.append(port);
+        return sb.toString();
+    }
+
+    private String getStopServerSettings() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" --stop-port ");
+        sb.append(stopPort);
+        sb.append(" --stop-key ");
+        sb.append(stopKey);
+        return sb.toString();
+    }
+
+    private String getStopServerArgs() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(" STOP.PORT=");
+        sb.append(stopPort);
+        sb.append(" STOP.KEY=");
+        sb.append(stopKey);
+        return sb.toString();
+    }
+
+    public void start() throws CDMServerException {
+
+        /**
+         * First check if the CDM server responds to a service request, which implies that
+         * the server has started properly. If no response is received then check if the
+         * server is listening on specific host / port, which implies that the server
+         * has started but incorrectly, in which case we try to force stop it (if we can)
+         * and start a new server.
+         */
+        if(isRunning(1)) {
+            logger.info("[CDM-Server] Server already running @ " + host + ":" + port );
+            return;
+        } else if (isAvailable(1)){
+            logger.info("[CDM-Server] Server available, but not started correctly @ " + host + ":" + port );
+            logger.info("[CDM-Server] .... trying to force stop server @ " + host + ":" + port );
+            try {
+                stop(true);
+            } catch (Exception e) {
+                throw new CDMServerException("CDM Server could not be stopped : " + e.getMessage());
+            }
+        }
+
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                StringBuffer output = new StringBuffer();
+                try{
+                    Process p;
+                    String command = "java "
+                            + getVMArgs()
+                            + " -jar "
+                            + DEFAULT_JETTY_RUNNER_RESOURCE.getFile().getAbsolutePath()
+                            + getStartServerArgs()
+                            + getStopServerSettings()
+                            + " "
+                            + DEFAULT_CDM_WEBAPP_RESOURCE.getFile().getAbsolutePath();
+                    logger.info("[CDM-Server] Starting server with Command : " + command);
+                    p = Runtime.getRuntime().exec(command);
+
+                    BufferedReader reader =
+                            new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+                    String line = "";
+                    while ((line = reader.readLine())!= null) {
+                        logger.info("[CDM-Server] Start : " + line);
+                    }
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    cdmse = new CDMServerException(e);
+                }
+
+            }
+        };
+
+        t.setDaemon(true);
+        cdmse = null;
+        t.start();
+
+        if(isRunning(50)) {
+            logger.info("[CDM-Server] Started Server @ " + host + ":" + port );
+        } else {
+            logger.info("[CDM-Server] Server not started within given interval");
+            // making sure to kill server if it is not started correctly
+            try {
+                stop(true);
+            } catch (Exception e) {
+                throw new CDMServerException("CDM Server could not be stopped : " + e.getMessage());
+            }
+            throw new CDMServerException("CDM Server not started : ");
+        }
+
+    }
+
+    public boolean isAvailable(int checkingIntervals) throws CDMServerException {
+        int intervalsCount = 0;
+        do {
+            try {
+                Socket s = new Socket(host, port);
+                logger.info("[CDM-Server] Available @ " + host + ":" + port );
+                return true;
+            } catch (IOException ioe) {
+
+            }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ie) {
+                throw new CDMServerException("Error checking CDM Server status", ie);
+            }
+            intervalsCount++;
+        } while (intervalsCount < checkingIntervals);
+
+        return false;
+    }
+
+    public boolean isStopped(int checkingIntervals) throws CDMServerException {
+        int intervalsCount = 0;
+        do {
+            try {
+                Socket s = new Socket(host, port);
+            } catch (IOException ioe) {               
+                return true;
+            }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ie) {
+                throw new CDMServerException("Error checking CDM Server status", ie);
+            }
+            intervalsCount++;
+        } while (intervalsCount < checkingIntervals);
+
+        return false;
+    }
+
+    public boolean isRunning(int checkingIntervals) throws CDMServerException  {
+        CdmRemoteSourceBase crsb = new CdmRemoteSourceBase("local-cdm-server",
+                host,
+                port,
+                contextPath,
+                null);
+        int intervalsCount = 0;
+        do {
+            try {
+                if(cdmse != null) {
+                    return false;
+                }
+                if(crsb.checkConnection()) {
+                    logger.info("[CDM-Server] Running @ " + host + ":" + port );
+                    return true;
+                }
+            } catch (Exception e) {
+            }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ie) {
+                throw new CDMServerException("Error checking CDM Server status", ie);
+            }
+            intervalsCount++;
+        } while (intervalsCount < checkingIntervals);
+        return false;
+    }
+
+    public void stop() throws Exception {
+        stop(false);
+    }
+    public void stop(boolean force) throws Exception {
+
+        if(!force) {
+            if(!getInstance().isAvailable(1)) {
+                logger.info("[CDM-Server] Server already stopped @ " + host + ":" + port );
+                return;
+            }
+
+            if(getInstance().getKeepServerRunning()) {
+                logger.info("[CDM-Server] Server @ " + host + ":" + port + " is set to keep running");
+                return;
+            }
+        }
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                StringBuffer output = new StringBuffer();
+                try{
+                    Process p;
+                    String command = "java -jar " + DEFAULT_JETTY_RESOURCE.getFile().getAbsolutePath()
+                            + getStopServerArgs() + " --stop ";
+                    logger.info("[CDM-Server] Stop Command : " + command);
+                    p = Runtime.getRuntime().exec(command);
+                    p.waitFor();
+                    BufferedReader reader =
+                            new BufferedReader(new InputStreamReader(p.getInputStream()));
+                    String line = "";
+                    while ((line = reader.readLine())!= null) {
+                        logger.info("CDM-Server Stop : " + line + "\n");
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+            }
+        };
+
+        t.setDaemon(true);
+        t.start();
+
+        if(isStopped(5)) {
+            logger.info("[CDM-Server] Stopped Server @ " + host + ":" + port );
+        } else {
+            logger.info("[CDM-Server] Could not stop @ " + host + ":" + port + ". Please kill it manually");
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmPersistentRemoteSourceTest.java
new file mode 100644 (file)
index 0000000..ba58bd2
--- /dev/null
@@ -0,0 +1,221 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+
+import static org.hamcrest.CoreMatchers.containsString;
+
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
+import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+
+/**
+ * Class to test the cdm persistent source functionality, including
+ * initialising / saving / updating and deleting
+ *
+ * Corresponding test sources settings can be found at
+ * /src/text/resources/eu.etaxonomy.cdm/cdm.datasources.xml
+ *
+ */
+public class CdmPersistentRemoteSourceTest extends BaseRemotingTest {
+    private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSourceTest.class);
+
+    private CdmPersistentRemoteSource remotePersistentSource;
+
+    @BeforeClass
+    public static void initialize() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+    }
+
+    @Test
+    public void whenLoadingExistingCompleteRemoteSourceThenLoadIsSuccessful() {
+
+        remotePersistentSource = getCdmPersistentRemoteSource();
+
+        String expectedServer = "127.0.0.1";
+        String expectedPort = "9090";
+        String expectedContextPath = "";
+        logger.info("Default remote source server : " + remotePersistentSource.getServer());
+        Assert.assertTrue("Default server should be " + expectedServer,
+                expectedServer.equals(remotePersistentSource.getServer()));
+
+        logger.info("Default remote source port : " + remotePersistentSource.getPort());
+        Assert.assertTrue("Default port should be 9090",
+                expectedPort.equals(String.valueOf(remotePersistentSource.getPort())));
+
+        logger.info("Default remote source context path : " + remotePersistentSource.getContextPath());
+        Assert.assertTrue("Default remote source context path should be " + expectedContextPath,
+                expectedContextPath.equals(remotePersistentSource.getContextPath()));
+
+        logger.info("Default remote source nomenclatural code : " + remotePersistentSource.getNomenclaturalCode().toString());
+        Assert.assertTrue("Default NomenclaturalCode should be ICNAFP",
+                NomenclaturalCode.ICNAFP.equals(remotePersistentSource.getNomenclaturalCode()));
+    }
+
+
+
+
+    @Test
+    public void whenConnectingToAnActiveServerThenConnectSuccessfully() {
+        // check if active server throws the right exception
+
+        remotePersistentSource = getCdmPersistentRemoteSource();
+
+        String dbSchemaVersion = "";
+        try {
+            dbSchemaVersion = remotePersistentSource.getDbSchemaVersion();
+        } catch (CdmSourceException e) {
+            Assert.fail("getDbSchemaVersion() on active cdm server should not have thrown CdmSourceException");
+        }
+        logger.info("dbSchemaVersion is " + dbSchemaVersion);
+
+
+        boolean isDbEmpty = false;
+        try {
+            isDbEmpty = remotePersistentSource.isDbEmpty();
+        } catch (CdmSourceException e) {
+            Assert.fail("isDbEmpty() on active cdm server should not have thrown CdmSourceException");
+        }
+        Assert.assertFalse(isDbEmpty);
+
+
+        boolean check = false;
+        try {
+            check = remotePersistentSource.checkConnection();
+        } catch (CdmSourceException e) {
+            Assert.fail("checkConnection() on active cdm server should not have thrown CdmSourceException");
+        }
+        Assert.assertTrue(check);
+
+
+    }
+
+    @Test
+    public void whenRequestingMetadatFromRemoteSourceThenMetaDataIsRetrieved() {
+        try {
+            remotePersistentSource = getCdmPersistentRemoteSource();
+            Map<MetaDataPropertyName, String> cdmMetaDataMap = remotePersistentSource.getMetaDataMap();
+            for(MetaDataPropertyName mdpn : cdmMetaDataMap.keySet()) {
+                String value = cdmMetaDataMap.get(mdpn);
+                logger.info("MetaData Property " + mdpn.name() + " has value " + value);
+                Assert.assertNotNull("Meta Data Value for property for " + mdpn.name() + " should not be null", value);
+            }
+        } catch (CdmSourceException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void whenLoadingNonExistingRemoteSourceThenThrowException() {
+        try {
+            remotePersistentSource = CdmPersistentRemoteSource.NewInstance("nonExistingSource");
+            Assert.fail("Initialising a non-existing remote source should throw an exception");
+        } catch (CdmRemoteSourceException e) {
+            logger.info(e.getMessage());
+        }
+    }
+
+    @Test
+    public void whenLoadingExistingIncompleteRemoteSourceThenThrowException() {
+        try {
+            remotePersistentSource = CdmPersistentRemoteSource.NewInstance("incomplete");
+            Assert.fail("Initialising an incomplete remote source should throw an exception");
+        } catch (CdmRemoteSourceException e) {
+            Assert.assertThat(e.getMessage(), containsString("Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing"));
+        }
+    }
+
+    @Test
+    public void whenSavingUpdatingDeletingNewCompleteRemoteSourceThenSaveUpdateDeleteIsSuccessful() {
+        String strRemoteSource = "local";
+        Assert.assertFalse("New remote source '" + strRemoteSource + "' should not yet exist in source settings file",
+                CdmPersistentRemoteSource.exists(strRemoteSource));
+        try {
+            ICdmRemoteSource remoteSource =
+                    CdmRemoteSource.NewInstance(strRemoteSource,
+                            "127.0.0.1",
+                            8080,
+                            "col",
+                            NomenclaturalCode.ICNAFP);
+            remotePersistentSource = CdmPersistentRemoteSource.save(strRemoteSource,remoteSource);
+
+            logger.info("Server : " + remotePersistentSource.getServer());
+            Assert.assertTrue("Server value should be equal",
+                    remoteSource.getServer().equals(remotePersistentSource.getServer()));
+
+            logger.info("Port : " + remotePersistentSource.getPort());
+            Assert.assertTrue("Port value should be equal",
+                    remoteSource.getPort() == remotePersistentSource.getPort());
+
+            logger.info("Context Path : " + remotePersistentSource.getContextPath());
+            Assert.assertTrue("Context Path value should be equal",
+                    remoteSource.getContextPath().equals(remotePersistentSource.getContextPath()));
+
+            logger.info("Nomenclatural Code : " + remotePersistentSource.getNomenclaturalCode().name());
+            Assert.assertTrue("Nomenclatural Code value should be equal",
+                    remoteSource.getNomenclaturalCode().name().equals(remotePersistentSource.getNomenclaturalCode().name()));
+
+            Assert.assertTrue("New remote source '" + strRemoteSource + "' should be saved in source settings file",
+                    CdmPersistentRemoteSource.exists(strRemoteSource));
+
+            remoteSource = CdmRemoteSource.NewInstance(strRemoteSource,
+                    "127.0.0.55",
+                    9090,
+                    "cyprus",
+                    NomenclaturalCode.ICNB);
+            remotePersistentSource = CdmPersistentRemoteSource.update(strRemoteSource,remoteSource);
+
+            logger.info("Server : " + remotePersistentSource.getServer());
+            Assert.assertTrue("Server value should be equal",
+                    remoteSource.getServer().equals(remotePersistentSource.getServer()));
+
+            logger.info("Port : " + remotePersistentSource.getPort());
+            Assert.assertTrue("Port value should be equal",
+                    remoteSource.getPort() == remotePersistentSource.getPort());
+
+            logger.info("Context Path : " + remotePersistentSource.getContextPath());
+            Assert.assertTrue("Context Path value should be equal",
+                    remoteSource.getContextPath().equals(remotePersistentSource.getContextPath()));
+
+            logger.info("Nomenclatural Code : " + remotePersistentSource.getNomenclaturalCode().name());
+            Assert.assertTrue("Nomenclatural Code value should be equal",
+                    remoteSource.getNomenclaturalCode().name().equals(remotePersistentSource.getNomenclaturalCode().name()));
+
+            Assert.assertTrue("New remote source '" + strRemoteSource + "' should be saved in source settings file",
+                    CdmPersistentRemoteSource.exists(strRemoteSource));
+
+            CdmPersistentSourceUtils.delete(remotePersistentSource);
+
+            Assert.assertFalse("New remote source '" + strRemoteSource + "' should no longer exist in source settings file",
+                    CdmPersistentRemoteSource.exists(strRemoteSource));
+
+        } catch (CdmRemoteSourceException e) {
+            Assert.fail("Saving a new complete remote source should not throw an exception");
+            logger.info(e.getMessage());
+        }
+    }
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java
new file mode 100644 (file)
index 0000000..3a8a786
--- /dev/null
@@ -0,0 +1,112 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.springframework.remoting.RemoteAccessException;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.lazyloading.RemotePersistentCollectionTest;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
+
+public class CdmRemoteSourceTest extends BaseRemotingTest {
+       private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
+
+
+       @BeforeClass
+       public static void initialize() {
+
+               Logger.getRootLogger().setLevel(Level.INFO);
+
+       }
+
+       @Test
+       public void whenConnectingToInactiveServerThenFailToConnect() {
+               // check if non-active server throws the right exception
+               CdmRemoteSource inactiveCrs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+                       CDMServer.getInstance().getHost(),
+                       808080,
+                       CDMServer.getInstance().getContextPath(),
+                       NomenclaturalCode.ICNAFP);
+               try {
+                       inactiveCrs.getDbSchemaVersion();
+                       Assert.fail("getDbSchemaVersion() on inactive cdm server should have thrown RemoteAccessException");
+               } catch(CdmSourceException cse) {
+                       Assert.fail("getDbSchemaVersion() on inactive cdm server should have thrown RemoteAccessException and not CdmSourceException");
+               } catch(RemoteAccessException rae){
+
+               }
+
+               try {
+                       inactiveCrs.isDbEmpty();
+                       Assert.fail("isDbEmpty() on inactive cdm server should have thrown RemoteAccessException");
+               } catch(CdmSourceException cse) {
+                       Assert.fail("isDbEmpty() on inactive cdm server should have thrown RemoteAccessException and not CdmSourceException");
+               } catch(RemoteAccessException rae){
+
+               }
+
+               try {
+                       inactiveCrs.checkConnection();
+                       Assert.fail("checkConnection() on inactive cdm server should have thrown RemoteAccessException");
+               } catch(CdmSourceException cse) {
+                       Assert.fail("checkConnection() on inactive cdm server should have thrown RemoteAccessException and not CdmSourceException");
+               } catch(RemoteAccessException rae){
+
+               }
+
+       }
+
+       @Test
+       public void whenConnectingToAnActiveServerWithServicesBlockedThenFailToAccessServices() {
+
+       }
+
+       @Test
+       public void whenConnectingToAnActiveServerThenConnectSuccessfully() {
+               // check if active server throws the right exception
+               CdmRemoteSource activeCrs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(),
+                CDMServer.getInstance().getHost(),
+                CDMServer.getInstance().getPort(),
+                CDMServer.getInstance().getContextPath(),
+                NomenclaturalCode.ICNAFP);
+               String dbSchemaVersion = "";
+               try {
+                       dbSchemaVersion = activeCrs.getDbSchemaVersion();
+               } catch (CdmSourceException e) {
+                       Assert.fail("getDbSchemaVersion() on active cdm server should not have thrown CdmSourceException");
+               }
+               logger.info("dbSchemaVersion is " + dbSchemaVersion);
+
+
+               boolean isDbEmpty = false;
+               try {
+                       isDbEmpty = activeCrs.isDbEmpty();
+               } catch (CdmSourceException e) {
+                       Assert.fail("isDbEmpty() on active cdm server should not have thrown CdmSourceException");
+               }
+               Assert.assertFalse(isDbEmpty);
+
+
+               boolean check = true;
+               try {
+                       isDbEmpty = activeCrs.checkConnection();
+               } catch (CdmSourceException e) {
+                       Assert.fail("checkConnection() on active cdm server should not have thrown CdmSourceException");
+               }
+               Assert.assertTrue(check);
+
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java
new file mode 100644 (file)
index 0000000..816b18b
--- /dev/null
@@ -0,0 +1,41 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.UnitilsJUnit4;
+
+import eu.etaxonomy.taxeditor.lazyloading.AbstractLazyInitializerTest;
+
+/**
+ * @author cmathew
+ * @date 6 Oct 2014
+ *
+ */
+public class CdmServerTest extends UnitilsJUnit4 {
+    private static final Logger logger = Logger.getLogger(CdmServerTest.class);
+
+
+    @Test
+    public void stopCdmServer() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+        CDMServer.getInstance().setKeepServerRunning(false);
+        try {
+            CDMServer.getInstance().stop(true);
+        } catch (Exception e) {
+            Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTestManager.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTestManager.java
new file mode 100644 (file)
index 0000000..64261d2
--- /dev/null
@@ -0,0 +1,41 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.UnitilsJUnit4;
+
+import eu.etaxonomy.taxeditor.lazyloading.AbstractLazyInitializerTest;
+
+/**
+ * @author cmathew
+ * @date 6 Oct 2014
+ *
+ */
+public class CdmServerTestManager extends UnitilsJUnit4 {
+    private static final Logger logger = Logger.getLogger(CdmServerTestManager.class);
+
+
+    @Test
+    public void stopCdmServer() {
+        Logger.getRootLogger().setLevel(Level.INFO);
+        
+        try {
+            CDMServer.getInstance().stop();
+        } catch (Exception e) {
+            Assert.fail("Server could not be stopped. Reason : " + e.getMessage());
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java
new file mode 100644 (file)
index 0000000..b05d362
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.httpinvoker;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+
+/**
+ * Class to test the HttpInvoker services exposed by the CDM Sever
+ *
+ */
+public class HttpInvokerServicesTest extends BaseRemotingTest {
+       private static final Logger logger = Logger.getLogger(HttpInvokerServicesTest.class);
+
+       @Test
+       public void whenCallingMethodsOnRemoteServicesThenSuceed() {
+               try {
+                       String dbSchemaVersion = getRemoteApplicationController().getDatabaseService().getDbSchemaVersion();
+                       logger.info("dbSchemaVersion is " + dbSchemaVersion);
+               } catch (CdmSourceException e) {
+                       Assert.fail("pinging database service on active cdm server should not have thrown CdmSourceException");
+               }
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java
new file mode 100644 (file)
index 0000000..9bfdc0d
--- /dev/null
@@ -0,0 +1,214 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+
+
+
+/**
+ * Class to test the {@link CdmApplicationRemoteController}
+ *
+ */
+@DataSet
+public class AbstractLazyInitializerTest extends BaseRemotingTest {
+    private static final Logger logger = Logger.getLogger(AbstractLazyInitializerTest.class);
+
+    private static IClassificationService classificationService;
+    private static ITaxonService taxonService;
+
+    private static List<TaxonNode> taxonNodes;
+
+    private final UUID taxonUuid1 = UUID.fromString("8217ef77-2ab1-4318-bd67-ccd0cdef07c4");
+    private final UUID taxonUuid2 = UUID.fromString("ef96fafa-7750-4141-b31b-1ad1daab3e76");
+
+
+    @BeforeClass
+    public void initializeRemoteLazyLoading() {
+
+        Logger.getRootLogger().setLevel(Level.DEBUG);
+
+        taxonService = getRemoteApplicationController().getTaxonService();
+        classificationService= getRemoteApplicationController().getClassificationService();
+        List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+        Assert.assertFalse(classifications.isEmpty());
+
+        Classification classification = classifications.get(0);
+        Assert.assertNotNull(classification);
+        taxonNodes = classificationService.getAllNodes();
+        Assert.assertFalse(taxonNodes.isEmpty());
+
+    }
+
+
+
+    @Test
+    public void testCDMEntityGet() {
+        //ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+        Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
+        int maxcount = 30;
+        int count = 0;
+        while(taxonNodeItr.hasNext() && count <= maxcount) {
+            TaxonNode taxonNode = taxonNodeItr.next();
+            Assert.assertNotNull(taxonNode);
+
+            Taxon taxon = taxonNode.getTaxon();
+            Assert.assertNotNull(taxon);
+
+            String taxonTitle = taxon.getTitleCache();
+            logger.info("Taxon : " + taxonTitle);
+
+            TaxonNameBase name = taxon.getName();
+            Assert.assertNotNull(name);
+
+            String nameTitle = name.getTitleCache();
+            logger.info("Taxon Name : " + nameTitle);
+
+            count++;
+        }
+    }
+
+    @Test
+    public void taxonReadTest() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+    }
+
+
+    @Test
+    public void testCDMEntitySave() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+        String oldTitleCache = taxon.getTitleCache();
+
+        System.out.println("Taxon title : " + oldTitleCache);
+
+        taxon.setTitleCache(oldTitleCache + ":updated", true);
+        taxonService.merge(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("New Taxon Title : " + taxonNew.getTitleCache());
+
+        Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,taxonNew.getTitleCache());
+
+        taxonNew.setTitleCache(oldTitleCache, true);
+        taxonService.merge(taxonNew);
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("Old Taxon Title : " + taxonOld.getTitleCache());
+
+        Assert.assertEquals("Title caches should be equal",oldTitleCache,taxonOld.getTitleCache());
+
+    }
+
+
+        @Test
+        public void testCDMEntitySaveLazyNew() {
+            Team combAuthor = Team.NewInstance();
+            combAuthor.addTeamMember(Person.NewTitledInstance("test member"));
+            BotanicalName name = BotanicalName.NewInstance(null, "Test1", null, null, null, null, null, null, null);
+            name.setCombinationAuthorTeam(combAuthor);
+            Taxon tax1 = Taxon.NewInstance(name, null);
+            UUID taxonUuid1 = taxonService.save(tax1);
+
+            Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+            NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+            String oldTitleCache = nvn.getTitleCache();
+            logger.info("Taxon Name Title : " + oldTitleCache);
+            nvn.setTitleCache(oldTitleCache + ":updated",false);
+            taxonService.update(taxon);
+
+            Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+            NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+            logger.info("New Taxon Name Title : " + nvnNew.getTitleCache());
+
+            Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
+
+            nvnNew.setTitleCache(oldTitleCache, true);
+            taxonService.update(taxon);
+
+            Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+            NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+            logger.info("Old Taxon Name Title : " + nvnNew.getTitleCache());
+
+            Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
+        }
+
+        @Ignore
+        @Test
+        public void testCDMEntitySaveCollection() {
+            Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+            Set<SynonymRelationship> synRelations = taxon.getSynonymRelations();
+            Set<String> relToTitles = new HashSet<String>();
+            Iterator<SynonymRelationship> srItr = synRelations.iterator();
+            while(srItr.hasNext()) {
+                SynonymRelationship sr = srItr.next();
+                System.out.println("Synonym Title Cache : " + sr.getSynonym().getTitleCache());
+                relToTitles.add(sr.getSynonym().getTitleCache());
+                sr.getSynonym().setTitleCache(sr.getSynonym().getTitleCache() + ":updated");
+
+            }
+            taxonService.merge(taxon);
+
+            Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+            Set<SynonymRelationship> synRelationsNew = taxonNew.getSynonymRelations();
+
+            Iterator<SynonymRelationship> srItrNew = synRelationsNew.iterator();
+            Iterator<String> relToTitlesItr = relToTitles.iterator();
+            while(srItrNew.hasNext() && relToTitlesItr.hasNext()) {
+                SynonymRelationship srNew = srItrNew.next();
+                String relToTitle = relToTitlesItr.next();
+                System.out.println("New Synonym Title Cache: " + srNew.getSynonym().getTitleCache());
+                Assert.assertNotEquals("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache(), relToTitle);
+                srNew.getSynonym().setTitleCache(relToTitle);
+            }
+
+            Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+
+            Set<SynonymRelationship> synRelationsOld = taxonNew.getSynonymRelations();
+            Iterator<SynonymRelationship> srItrOld = synRelationsOld.iterator();
+            relToTitlesItr = relToTitles.iterator();
+            while(srItrOld.hasNext() && relToTitlesItr.hasNext()) {
+                SynonymRelationship srOld = srItrOld.next();
+                String relToTitle = relToTitlesItr.next();
+                System.out.println("New Synonym Title Cache: " + srOld.getSynonym().getTitleCache());
+                Assert.assertEquals("Synonym Title caches should be equal", srOld.getSynonym().getTitleCache(), relToTitle);
+
+            }
+        }
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.java
new file mode 100644 (file)
index 0000000..f995499
--- /dev/null
@@ -0,0 +1,89 @@
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
+
+/**
+ * @author cmathew
+ * @date 16 Oct 2014
+ *
+ */
+public class CdmEntityCacherTest extends BaseRemotingTest {
+
+    private static final Logger logger = Logger.getLogger(CdmEntityCacherTest.class);
+
+    UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+    UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
+
+
+    IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+    ICommonService commonService = getRemoteApplicationController().getCommonService();
+    ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+
+    Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+    @BeforeClass
+    public static void initializePolytomousKeyTest() {
+        logger.setLevel(Level.INFO);
+        CDMServer.getInstance().setKeepServerRunning(true);
+
+        initializeController("default", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
+    }
+
+    @Test
+    public void testSimpleCache() {
+
+
+    }
+
+    @Test
+    public void testCachingCdmEntities() {
+        PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        PolytomousKeyNode pkeynode = pkey.getRoot();
+
+        PersistentCollection children = (PersistentCollection) pkeynode.getChildren();
+        PolytomousKeyNode childNode0 = (PolytomousKeyNode)commonService.get(children, 0);
+        PolytomousKey subkey1 = CdmBase.deproxy(childNode0.getSubkey(),PolytomousKey.class);
+        String subkey1title = subkey1.getTitleCache();
+        subkey1.setTitleCache(subkey1title + "test", true);
+
+        PolytomousKeyNode childNode1 = (PolytomousKeyNode)commonService.get(children, 1);
+        PolytomousKey subkey2 = CdmBase.deproxy(childNode1.getSubkey(),PolytomousKey.class);
+        String subkey2title = subkey2.getTitleCache();
+        subkey2.setTitleCache(subkey2title + "test", true);
+
+        Assert.assertNotSame(subkey1, subkey2);
+
+        polytomousKeyService.merge(pkey);
+
+
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java
new file mode 100644 (file)
index 0000000..be649ba
--- /dev/null
@@ -0,0 +1,38 @@
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+public class CdmServiceCacherTest extends BaseRemotingTest {
+       private static final Logger logger = Logger.getLogger(CdmServiceCacherTest.class);
+
+
+       private static CdmServiceCacher cdmServiceCacher;
+
+       @BeforeClass
+       public void initialize() {
+               Logger.getRootLogger().setLevel(Level.INFO);
+               cdmServiceCacher = (CdmServiceCacher)getRemoteApplicationController().getBean("cdmServiceCacher");
+       }
+
+       @Test
+       public void testLanguageCache() {
+               Language defaultLanguage = Language.getDefaultLanguage();
+
+               Language defaultLanguageInCache = (Language)cdmServiceCacher.getFromCache(defaultLanguage.getUuid());
+               Assert.assertEquals("Loaded Language Term should match Language Term in Cache",defaultLanguage,defaultLanguageInCache);
+
+               Language language = Language.getLanguageFromUuid(Language.uuidFrench);
+               Language languageInCache = (Language)cdmServiceCacher.getFromCache(language.getUuid());
+               Assert.assertEquals("Loaded Language Term should match Language Term in Cache",language,languageInCache);
+
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java
new file mode 100644 (file)
index 0000000..30fe70b
--- /dev/null
@@ -0,0 +1,278 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+
+
+/**
+ * Test class which tests remoting for persistent cdm entities.
+ *
+ * FIXME:Remoting saving tests are ignored until the merge development is underway
+ * @author c.mathew
+ *
+ */
+//@DataSet
+public class RemoteLazyLoadingTest extends BaseRemotingTest {
+
+    private static final Logger logger = Logger.getLogger(RemoteLazyLoadingTest.class);
+
+    private static IClassificationService classificationService;
+    private static ITaxonService taxonService;
+
+    private static List<TaxonNode> taxonNodes;
+
+    private final UUID taxonUuid1 = UUID.fromString("8217ef77-2ab1-4318-bd67-ccd0cdef07c4");
+    private final UUID taxonUuid2 = UUID.fromString("ef96fafa-7750-4141-b31b-1ad1daab3e76");
+
+
+    @BeforeClass
+    public static void initializeRemoteLazyLoading() {
+
+        Logger.getRootLogger().setLevel(Level.DEBUG);
+        taxonService = getRemoteApplicationController().getTaxonService();
+
+        classificationService= getRemoteApplicationController().getClassificationService();
+        //List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+//        Assert.assertFalse(classifications.isEmpty());
+//
+//        Classification classification = classifications.get(0);
+//        Assert.assertNotNull(classification);
+        taxonNodes = classificationService.getAllNodes();
+        Assert.assertFalse(taxonNodes.isEmpty());
+
+    }
+
+
+
+    @Test
+    public void testCDMEntityGet() {
+        Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
+        int maxcount = 30;
+        int count = 0;
+        while(taxonNodeItr.hasNext() && count <= maxcount) {
+            TaxonNode taxonNode = taxonNodeItr.next();
+            Assert.assertNotNull(taxonNode);
+
+            Taxon taxon = taxonNode.getTaxon();
+            Assert.assertNotNull(taxon);
+
+            String taxonTitle = taxon.getTitleCache();
+            logger.info("Taxon : " + taxonTitle);
+
+            TaxonNameBase name = taxon.getName();
+            Assert.assertNotNull(name);
+
+            String nameTitle = name.getTitleCache();
+            logger.info("Taxon Name : " + nameTitle);
+
+            count++;
+        }
+
+
+    }
+
+    @Test
+    public void test() {
+
+    }
+
+    @Test
+    public void testCDMEntitySaveEager() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+        String oldTitleCache = taxon.getTitleCache();
+
+        System.out.println("Taxon title : " + oldTitleCache);
+
+        taxon.setTitleCache(oldTitleCache + ":updated");
+        taxonService.merge(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("New Taxon Title : " + taxonNew.getTitleCache());
+
+        Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,taxonNew.getTitleCache());
+
+        taxonNew.setTitleCache(oldTitleCache);
+        taxonService.merge(taxonNew);
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        System.out.println("Old Taxon Title : " + taxonOld.getTitleCache());
+
+        Assert.assertEquals("Title caches should be equal",oldTitleCache,taxonOld.getTitleCache());
+
+    }
+
+
+    @Test
+    public void testCDMEntityUpdate() {
+
+        Team combAuthor = Team.NewInstance();
+        combAuthor.addTeamMember(Person.NewTitledInstance("test member"));
+        BotanicalName name = BotanicalName.NewInstance(null, "Test1", null, null, null, null, null, null, null);
+        name.setCombinationAuthorTeam(combAuthor);
+        Taxon taxon = Taxon.NewInstance(name, null);
+        UUID taxonUuid = taxonService.save(taxon);
+
+        //        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+        //        NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        //        String oldTitleCache = nvn.getTitleCache();
+        //        System.out.println("Taxon Name Title : " + oldTitleCache);
+        //        nvn.setTitleCache(oldTitleCache + ":updated", true);
+        //
+        //        taxon.setTitleCache(oldTitleCache + ":updated",true);
+        //        try {
+        //            taxonService.update(taxon);
+        //        } catch (LazyInitializationException lie) {
+        //            lie.printStackTrace();
+        //        }
+
+        List<String> TAXON_INIT_STRATEGY = Arrays.asList(new String[] {
+                "name"
+        });
+        Taxon taxonNew = (Taxon)taxonService.findTaxonByUuid(taxonUuid,TAXON_INIT_STRATEGY);
+        NonViralName nvn = CdmBase.deproxy(taxonNew.getName(),NonViralName.class);
+        Team team = CdmBase.deproxy(nvn.getCombinationAuthorTeam(),Team.class);
+        String oldTitleCache = nvn.getTitleCache();
+        System.out.println("Taxon Name Title : " + oldTitleCache);
+        nvn.setTitleCache(oldTitleCache + ":updated", true);
+        taxonService.update(taxonNew);
+
+    }
+
+
+    @Test
+    public void testCDMEntitySaveLazy() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+        NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        String oldTitleCache = nvn.getTitleCache();
+        System.out.println("Taxon Name Title : " + oldTitleCache);
+        nvn.setTitleCache(oldTitleCache + ":updated", true);
+        taxonService.update(taxon);
+
+        //             Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        //             NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        //             System.out.println("New Taxon Name Title : " + nvnNew.getTitleCache());
+        //
+        //             Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
+        //
+        //             nvnNew.setTitleCache(oldTitleCache, true);
+        //             taxonService.update(taxon);
+        //
+        //             Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        //             NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        //             System.out.println("Old Taxon Name Title : " + nvnNew.getTitleCache());
+        //
+        //             Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
+    }
+
+    @Test
+    public void testCDMEntitySaveLazyNew() {
+        Team combAuthor = Team.NewInstance();
+        combAuthor.addTeamMember(Person.NewTitledInstance("test member"));
+        BotanicalName name = BotanicalName.NewInstance(null, "Test1", null, null, null, null, null, null, null);
+        name.setCombinationAuthorTeam(combAuthor);
+        Taxon tax1 = Taxon.NewInstance(name, null);
+        UUID taxonUuid1 = taxonService.save(tax1);
+
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+        NonViralName nvn = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        String oldTitleCache = nvn.getTitleCache();
+        logger.info("Taxon Name Title : " + oldTitleCache);
+        nvn.setTitleCache(oldTitleCache + ":updated",false);
+        taxonService.update(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        NonViralName nvnNew = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        logger.info("New Taxon Name Title : " + nvnNew.getTitleCache());
+
+        Assert.assertNotEquals("Title caches should not be equal",oldTitleCache,nvnNew.getTitleCache());
+
+        nvnNew.setTitleCache(oldTitleCache, true);
+        taxonService.update(taxon);
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+        NonViralName nvnOld = CdmBase.deproxy(taxon.getName(),NonViralName.class);
+        logger.info("Old Taxon Name Title : " + nvnNew.getTitleCache());
+
+        Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
+    }
+    @Ignore
+    @Test
+    public void testCDMEntitySaveCollection() {
+        Taxon taxon = (Taxon)taxonService.find(taxonUuid1);
+
+        Set<SynonymRelationship> synRelations = taxon.getSynonymRelations();
+        Set<String> relToTitles = new HashSet<String>();
+        Iterator<SynonymRelationship> srItr = synRelations.iterator();
+        while(srItr.hasNext()) {
+            SynonymRelationship sr = srItr.next();
+            System.out.println("Synonym Title Cache : " + sr.getSynonym().getTitleCache());
+            relToTitles.add(sr.getSynonym().getTitleCache());
+            sr.getSynonym().setTitleCache(sr.getSynonym().getTitleCache() + ":updated");
+
+        }
+        taxonService.merge(taxon);
+
+        Taxon taxonNew = (Taxon)taxonService.find(taxonUuid1);
+        Set<SynonymRelationship> synRelationsNew = taxonNew.getSynonymRelations();
+
+        Iterator<SynonymRelationship> srItrNew = synRelationsNew.iterator();
+        Iterator<String> relToTitlesItr = relToTitles.iterator();
+        while(srItrNew.hasNext() && relToTitlesItr.hasNext()) {
+            SynonymRelationship srNew = srItrNew.next();
+            String relToTitle = relToTitlesItr.next();
+            System.out.println("New Synonym Title Cache: " + srNew.getSynonym().getTitleCache());
+            Assert.assertNotEquals("Synonym Title caches should not be equal", srNew.getSynonym().getTitleCache(), relToTitle);
+            srNew.getSynonym().setTitleCache(relToTitle);
+        }
+
+        Taxon taxonOld = (Taxon)taxonService.find(taxonUuid1);
+
+        Set<SynonymRelationship> synRelationsOld = taxonNew.getSynonymRelations();
+        Iterator<SynonymRelationship> srItrOld = synRelationsOld.iterator();
+        relToTitlesItr = relToTitles.iterator();
+        while(srItrOld.hasNext() && relToTitlesItr.hasNext()) {
+            SynonymRelationship srOld = srItrOld.next();
+            String relToTitle = relToTitlesItr.next();
+            System.out.println("New Synonym Title Cache: " + srOld.getSynonym().getTitleCache());
+            Assert.assertEquals("Synonym Title caches should be equal", srOld.getSynonym().getTitleCache(), relToTitle);
+
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.java
new file mode 100644 (file)
index 0000000..a3c94b9
--- /dev/null
@@ -0,0 +1,226 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.lazyloading;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.hibernate.collection.internal.AbstractPersistentCollection;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+/**
+ * Test class which tests remoting for persistent collections.
+ *
+ * @author c.mathew
+ * @created 13.03.2014
+ */
+public class RemotePersistentCollectionTest extends BaseRemotingTest {
+       private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
+
+       private static IClassificationService classificationService;
+       private static ICommonService commonService;
+
+       @BeforeClass
+       public void initializeServices() {
+               Logger.getRootLogger().setLevel(Level.INFO);
+               classificationService = getRemoteApplicationController().getClassificationService();
+               commonService = getRemoteApplicationController().getCommonService();
+       }
+
+       /**
+        * Test method which checks remoting for persistent lists.
+        *
+        */
+       @Test
+       public void persistentListTest() {
+
+               List<TaxonNode> taxonNodes = classificationService.getAllNodes();
+               int size = taxonNodes.size();
+               logger.debug("classificationService.getAllNodes() size : " + size);
+               TaxonNode taxonNode = null;
+               if(size > 0) {
+                       Assert.assertFalse(taxonNodes.isEmpty());
+
+                       taxonNode = taxonNodes.get(0);
+                       Assert.assertNotNull(taxonNode);
+                       Assert.assertTrue(taxonNodes.contains(taxonNode));
+
+                       // get the list of child nodes, which will give a
+                       // proxy list which is not yet initialised
+                       List<TaxonNode> childNodes = taxonNode.getChildNodes();
+                       // this size call will first initialise the list locally by internally
+                       // calling the ICommonService.initializeCollection method and then
+                       // call size on the initialised list
+                       int childCount = childNodes.size();
+
+                       // this size call will initialise the list remotely and only return the
+                       // size of the list
+                       int remoteChildCount = commonService.size((PersistentCollection)childNodes);
+                       Assert.assertEquals(childCount, remoteChildCount);
+
+                       String firstNodeTaxonTitle = taxonNode.getTaxon().getTitleCache();
+                       Assert.assertNotNull(firstNodeTaxonTitle);
+
+                       if(childCount > 0) {
+                               Assert.assertFalse(childNodes.isEmpty());
+                               // this get call will use the already initialised list to get the
+                               // 0th element
+                               TaxonNode localTaxonNode = childNodes.get(0);
+
+                               // this get call will initialise the list remotely and only return the
+                               // 0th element from the list
+                               TaxonNode remoteTaxonNode = (TaxonNode)commonService.get((PersistentCollection)childNodes,0);
+
+                               // the locally and remotely retrieved taxon node should exist in the
+                               // (local and remote) child nodes list, should be not-null and should be equal to each other
+                               Assert.assertTrue(taxonNode.getChildNodes().contains(localTaxonNode));
+                               Assert.assertTrue(taxonNode.getChildNodes().contains(remoteTaxonNode));
+                               Assert.assertTrue(commonService.contains((PersistentCollection)childNodes, localTaxonNode));
+                               Assert.assertTrue(commonService.contains((PersistentCollection)childNodes, remoteTaxonNode));
+                               Assert.assertNotNull(remoteTaxonNode);
+                               Assert.assertNotNull(localTaxonNode);
+                               Assert.assertEquals(remoteTaxonNode,localTaxonNode);
+                       }
+               }
+       }
+
+//     @Test
+//     public void persistentSetTest() {
+//             List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
+//             int size = classifications.size();
+//             if(size > 0) {
+//                     Assert.assertFalse(classifications.isEmpty());
+//
+//                     Classification classification = classifications.get(0);
+//                     Assert.assertNotNull(classification);
+//                     Assert.assertTrue(classifications.contains(classification));
+//
+//                     TaxonNode rootTaxonNode = classification.getRootNode();
+//                     // get the list of child nodes, which will give a
+//                     // proxy list which is not yet initialised
+//                     List<TaxonNode> childNodes = rootTaxonNode.getChildNodes();
+//
+//                     // this size call will initialise the list locally by internally
+//                     // calling the ICommonService.initializeCollection method
+//                     int childCount = childNodes.size();
+//
+//                     if(childCount > 0) {
+//                             Assert.assertFalse(childNodes.isEmpty());
+//
+//                             // this get call will use the already initialised list to get the
+//                             // 0th element
+//                             Taxon localTaxon = childNodes.get(0).getTaxon();
+//                             Assert.assertNotNull(localTaxon);
+//
+//                             TaxonNameBase taxonName = localTaxon.getName();
+//                             Assert.assertNotNull(taxonName);
+//
+//                             // get the list of taxa, which will give a
+//                             // proxy set which is not yet initialised
+//                             Set<Taxon> taxa = taxonName.getTaxonBases();
+//
+//                             // this size call will initialise the list locally by internally
+//                             // calling the ICommonService.initializeCollection method
+//                             int taxaCount = taxa.size();
+//                             Assert.assertNotEquals(taxaCount,-1);
+//
+//                             if(taxaCount > 0) {
+//                                     Assert.assertFalse(taxa.isEmpty());
+//                                     // the locally retrieved taxon should exist in the
+//                                     // (local and remote) taxon list and should be not-null
+//                                     Assert.assertTrue(taxa.contains(localTaxon));
+//                                     Assert.assertNotNull(localTaxon);
+//                                     Assert.assertTrue(commonService.contains((PersistentCollection)taxa, localTaxon));
+//                             }
+//                     }
+//             }
+//     }
+
+       @Test
+       public void persistentMapTest() {
+               List<TaxonNode> taxonNodes = classificationService.getAllNodes();
+               // calling iterator will initialise the collection
+               Iterator<TaxonNode> taxonNodesItr = taxonNodes.iterator();
+               while(taxonNodesItr.hasNext()) {
+                       TaxonNode taxonNode = taxonNodesItr.next();
+                       Taxon taxon = taxonNode.getTaxon();
+
+                       if(taxon != null) {
+                               Set<TaxonDescription> descriptions = taxon.getDescriptions();
+                               Iterator<TaxonDescription> descriptionsItr = descriptions.iterator();
+                               while(descriptionsItr.hasNext()) {
+                                       TaxonDescription desc = descriptionsItr.next();
+                                       if(desc != null) {
+                                               for (DescriptionElementBase element : desc.getElements()){
+                                                       if (element.isInstanceOf(TextData.class)){
+                                                               // usually a call to 'get' collections should not initialise the collection,
+                                                               // but the 'getMultilanguageText' call internally calls readSize on the collection
+                                                               // which triggers the initialisation
+                                                               Map<Language, LanguageString> multilanguagetextMap = ((TextData)element).getMultilanguageText();
+                                                               //boolean init = AbstractPersistentCollection.isInitialized(multilanguagetextMap);
+                                                               //Assert.assertTrue(init);
+
+                                                               if(!multilanguagetextMap.isEmpty()) {
+                                                                       // found a map whcih we can test!
+                                                                       logger.info("Found Non-empty multilanguagetextMap");
+                                                                       boolean empty = commonService.isEmpty((PersistentCollection)multilanguagetextMap);
+                                                                       Assert.assertFalse(empty);
+                                                                       // test retrieval of key set, which should already by initialised
+                                                                       Set<Language> langKeySet = multilanguagetextMap.keySet();
+                                                                       Iterator<Language> langKeySetItr = langKeySet.iterator();
+                                                                       while(langKeySetItr.hasNext()) {
+                                                                               Language key = langKeySetItr.next();
+                                                                               // testing 'containsKey' on locally initialised collection
+                                                                               boolean localContainsKey = multilanguagetextMap.containsKey(key);
+                                                                               Assert.assertTrue(localContainsKey);
+                                                                               // testing 'containsKey' on remotely initialised collection
+                                                                               boolean remoteContainsKey =
+                                                                                               commonService.containsKey((PersistentCollection)multilanguagetextMap, key);
+                                                                               Assert.assertTrue(remoteContainsKey);
+
+                                                                               LanguageString value = multilanguagetextMap.get(key);
+                                                                               // testing 'containsValue' on locally initialised collection
+                                                                               boolean localContainsValue = multilanguagetextMap.containsValue(value);
+                                                                               Assert.assertTrue(localContainsValue);
+                                                                               // testing 'containsValue' on remotely initialised collection
+                                                                               boolean remoteContainsValue =
+                                                                                               commonService.containsValue((PersistentCollection)multilanguagetextMap, value);
+                                                                               Assert.assertTrue(remoteContainsValue);
+
+                                                                       }
+                                                                       return;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.java
new file mode 100644 (file)
index 0000000..3b7f16c
--- /dev/null
@@ -0,0 +1,98 @@
+package eu.etaxonomy.taxeditor.session;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+import eu.etaxonomy.taxeditor.httpinvoker.CDMServer;
+import eu.etaxonomy.taxeditor.session.CdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
+
+public class CdmEntitySessionManagerTest extends BaseRemotingTest {
+
+       private static final Logger logger = Logger.getLogger(CdmEntitySessionManagerTest.class);
+       
+       private ISessionEventListener sessionOwner;
+       private ICdmEntitySessionManager cdmEntitySessionManager = getRemoteApplicationController().getCdmEntitySessionManager();
+       IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+
+       private UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+       private Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+
+       @BeforeClass
+       public static void initializeCdmEntitySessionManagerTest() {        
+               CDMServer.getInstance().setKeepServerRunning(true);             
+       }
+
+       @Before
+       public void initializeSession() {
+               sessionOwner = new MockSessionOwner();    
+               cdmEntitySessionManager.bind(sessionOwner);     
+       }
+
+       @Test
+       public void manageSessionWithObjectTest() {
+               PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+               pKey = cdmEntitySessionManager.load(sessionOwner, pKey);
+               Assert.assertNotNull(cdmEntitySessionManager.getActiveSession());
+               List<CdmBase> rootEntities = (List<CdmBase>)getFieldValueViaReflection(cdmEntitySessionManager.getActiveSession(), "rootEntities");
+
+               Assert.assertEquals(rootEntities.size(),1);
+               Assert.assertSame(rootEntities.get(0), pKey);
+
+               String upTitleCache = "Updated Title Cache";
+               String upStatement = "Updated Statement";
+               pKey.setTitleCache(upTitleCache, true);
+
+               pKey.getRoot().getChildAt(0).getStatement().getLabel(english).setText(upStatement);
+               polytomousKeyService.merge(pKey);
+
+               sessionOwner = new MockSessionOwner();    
+               pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+               pKey = cdmEntitySessionManager.load(sessionOwner, pKey);
+               
+               Assert.assertEquals(pKey.getTitleCache(), upTitleCache);
+               Assert.assertEquals(pKey.getRoot().getChildAt(0).getStatement().getLabel(english).getText(), upStatement);
+       }
+
+       @Test
+       public void manageSessionWithListTest() {
+               List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
+               pKeys = (List<PolytomousKey>) cdmEntitySessionManager.load(sessionOwner, pKeys);
+               Assert.assertNotNull(cdmEntitySessionManager.getActiveSession());
+               List<CdmBase> rootEntities = (List<CdmBase>)getFieldValueViaReflection(cdmEntitySessionManager.getActiveSession(), "rootEntities");
+
+               Assert.assertEquals(rootEntities.size(),2);
+               Assert.assertSame(rootEntities.get(0),pKeys.get(0));
+               Assert.assertEquals(rootEntities.get(0).getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
+
+               Assert.assertSame(rootEntities.get(1),pKeys.get(1));
+               Assert.assertEquals(rootEntities.get(1).getUuid(),UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));
+
+               String upTitleCache = "Updated Title Cache";
+               String upStatement = "Updated Statement";
+               pKeys.get(0).setTitleCache(upTitleCache, true);
+               polytomousKeyService.merge(pKeys.get(0));
+               pKeys.get(1).getRoot().getChildAt(0).getStatement().getLabel(english).setText(upStatement);
+               polytomousKeyService.merge(pKeys.get(1));
+
+               sessionOwner = new MockSessionOwner();    
+               pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
+               pKeys = (List<PolytomousKey>) cdmEntitySessionManager.load(sessionOwner, pKeys);
+               Assert.assertEquals(pKeys.get(0).getTitleCache(), upTitleCache);
+               Assert.assertEquals(pKeys.get(1).getRoot().getChildAt(0).getStatement().getLabel(english).getText(), upStatement);
+
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java b/eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java
new file mode 100644 (file)
index 0000000..24ee0a6
--- /dev/null
@@ -0,0 +1,7 @@
+package eu.etaxonomy.taxeditor.session;
+
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
+
+public class MockSessionOwner implements ISessionEventListener {
+
+}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/cdmlib-ehcache.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/cdmlib-ehcache.xml
new file mode 100644 (file)
index 0000000..7ab604c
--- /dev/null
@@ -0,0 +1,6 @@
+<ehcache name="cdmlibModelCacheManager">
+       <diskStore path="ehcache.disk.store.dir/cdmlib" />
+       <cache name="cdmModelGetMethodsCache" maxElementsInMemory="0" maxElementsOnDisk="0" eternal="true"
+               overflowToDisk="true" diskPersistent="true" memoryStoreEvictionPolicy="LRU">
+       </cache>
+</ehcache>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/datasources.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/datasources.xml
new file mode 100644 (file)
index 0000000..7a6ff14
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:tx="http://www.springframework.org/schema/tx"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+    http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
+    http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+    ">
+
+    <!--
+      DataSourceProperties allow configuring specific properties of the datasources
+
+       * cdmlib-remote.xslBasePath:
+            alternative base path for REST services to retrieve XSL style sheets from.
+            the base path must be on the same domain since cross domain xsl loading is
+            not permitted
+      -->
+      <bean id="dataSourceProperties" class="eu.etaxonomy.cdm.remote.config.DataSourceProperties">
+        <property name="propsMap">
+          <map>
+            <!--
+            <entry key="dataSourceBeanID">
+                <props>
+                    <prop key="cdmlib-remote.xslBasePath">/xsl</prop>
+                </props>
+            </entry>
+             -->
+            </map>
+        </property>
+      </bean>
+
+    <bean id="cdmTest"  lazy-init="true" class="com.mchange.v2.c3p0.ComboPooledDataSource">
+        <property name="driverClass" value="eu.etaxonomy.cdm.database.LocalH2"/>
+        <property name="user" value="sa" />
+        <property name="password" value="" />
+        <property name="jdbcUrl" value="jdbc:h2:file:./target/test-classes/h2/cdmTest;AUTO_SERVER=TRUE"/>
+    </bean>
+</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml
new file mode 100644 (file)
index 0000000..32d3331
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     79
+      AgentBase                      1
+      Credit                         1
+      DefinedTermBase                1
+      Extension                      1
+      KeyStatement                   10
+      KeyStatement_LanguageString    10
+      LanguageString                 19
+      OriginalSourceBase             2
+      PolytomousKey                  2
+      PolytomousKeyNode              10
+      PolytomousKeyNode_LanguageString 9
+      PolytomousKey_Credit           1
+      PolytomousKey_Extension        1
+      PolytomousKey_OriginalSourceBase 2
+      PolytomousKey_RightsInfo       1
+      PolytomousKey_Taxon            1
+      RightsInfo                     1
+      TaxonBase                      6
+  
+--><dataset>
+  <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+  <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="Modifying Text 1b" language_id="124"/>
+  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14572" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155f" updated="2014-10-09 15:43:03.0" text="Koi Sach Ya Sawal" createdby_id="30" updatedby_id="30" language_id="125"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+  <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+
+  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760" statement_id="2460"/>
+  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+  <DefinedTermBase DTYPE="Language" id="124" created="2010-12-21 15:09:09.0" uuid="e9f8cdb7-6819-44e8-95d3-e2d0690c3523" protectedtitlecache="false" titleCache="English" uri=""  vocabulary_id="10" termType="LA" idInVocabulary="eng"/>
+  <DefinedTermBase DTYPE="Language" id="125" created="2010-12-21 15:09:09.0" uuid="0a1d9d1d-135d-4575-b172-669b51673c39" protectedtitlecache="false" titleCache="Hindi" uri=""  vocabulary_id="10" termType="LA" idInVocabulary="hin"/>
+
+  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+  <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+  <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2460" label_id="14572" label_mapkey_id="125"/>  
+
+  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
+  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+
+  
+</dataset>
index f306cad2fada57c566a8ca3e2e85d9ade45e2ea3..f5d1afb0eb743ec55a4644be2322b08fe8c7ac54 100644 (file)
@@ -1,21 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans 
-    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-    http://www.springframework.org/schema/context
-    http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+<beans xmlns="http://www.springframework.org/schema/beans" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+xmlns:context="http://www.springframework.org/schema/context" 
+xsi:schemaLocation="http://www.springframework.org/schema/beans      
+http://www.springframework.org/schema/beans/spring-beans-3.1.xsd     
+http://www.springframework.org/schema/context     
+http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+  <bean id="defaultRemoteSource">
+    <property name="server" value="127.0.0.1" />
+    <property name="port" value="9090" />
+    <property name="contextPath" value="" />
+  </bean>
+  
+  <bean id="incompleteRemoteSource">
+    <property name="port" value="9090" />
+    <property name="contextPath" value="" />
+  </bean>
+</beans>
 
-       <bean id="defaultRemoteSource">
-        <property name="server" value="127.0.0.1"/>
-        <property name="port" value="8080"/>
-        <property name="contextPath" value=""/>
-    </bean>        
-    
-    <bean id="incompleteRemoteSource">
-        <property name="server" value="127.0.0.1"/>
-        <property name="contextPath" value=""/>
-    </bean>      
-       
-</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/polytomouskey/PolytomousKeyTest.xml
new file mode 100644 (file)
index 0000000..fb48dac
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     79
+      AgentBase                      1
+      Credit                         1
+      DefinedTermBase                1
+      Extension                      1
+      KeyStatement                   10
+      KeyStatement_LanguageString    10
+      LanguageString                 19
+      OriginalSourceBase             2
+      PolytomousKey                  2
+      PolytomousKeyNode              10
+      PolytomousKeyNode_LanguageString 9
+      PolytomousKey_Credit           1
+      PolytomousKey_Extension        1
+      PolytomousKey_OriginalSourceBase 2
+      PolytomousKey_RightsInfo       1
+      PolytomousKey_Taxon            1
+      RightsInfo                     1
+      TaxonBase                      6
+  
+--><dataset>
+  <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+  <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+  <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+
+  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760"/>
+  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+  <DefinedTermBase DTYPE="Language" id="124" created="2010-12-21 15:09:09.0" uuid="e9f8cdb7-6819-44e8-95d3-e2d0690c3523" protectedtitlecache="false" titleCache="English" uri=""  vocabulary_id="10" termType="LA" idInVocabulary="eng"/>
+
+  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+  <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+  <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+
+  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
+  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+
+  
+</dataset>
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml
new file mode 100644 (file)
index 0000000..dda9952
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:context="http://www.springframework.org/schema/context"
+  xmlns:tx="http://www.springframework.org/schema/tx"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans
+    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+    http://www.springframework.org/schema/context
+    http://www.springframework.org/schema/context/spring-context-2.5.xsd
+    http://www.springframework.org/schema/tx
+    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
+
+    <bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean"/>          
+
+</beans>
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml
new file mode 100644 (file)
index 0000000..59cfc00
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Mon Oct 06 13:11:21 CEST 2014 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  TaxonBase where uuid like '8217ef77-2ab1-4318-bd67-ccd0cdef07c4' (extractionmodel/by-example/SbE-TaxonBase-13-09-59-049.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     2
+      TaxonBase                      1
+      TaxonNameBase                  1
+  
+--><dataset>
+  <TaxonNameBase DTYPE="BotanicalName" id="32" created="2010-12-21 15:09:43.0" uuid="f8be96d0-9af9-4e19-b9f1-52a4c0ecc580" protectedtitlecache="true" titleCache="Achillea arabica Kotschy" fullTitleCache="Achillea arabica Kotschy" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Kotschy" binomhybrid="false" genusoruninomial="Achillea" hybridformula="false" monomhybrid="false" namecache="Achillea arabica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="arabica" trinomhybrid="false" anamorphic="false" createdby_id="11" homotypicalgroup_id="32" rank_id="778" combinationauthorteam_id="36"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" updated="2014-09-17 09:27:47.0" protectedtitlecache="true" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" name_id="32" sec_id="10" publish="true"/>
+
+  
+</dataset>
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml
new file mode 100644 (file)
index 0000000..ba23175
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     79
+      AgentBase                      1
+      Credit                         1
+      DefinedTermBase                1
+      Extension                      1
+      KeyStatement                   10
+      KeyStatement_LanguageString    10
+      LanguageString                 19
+      OriginalSourceBase             2
+      PolytomousKey                  2
+      PolytomousKeyNode              10
+      PolytomousKeyNode_LanguageString 9
+      PolytomousKey_Credit           1
+      PolytomousKey_Extension        1
+      PolytomousKey_OriginalSourceBase 2
+      PolytomousKey_RightsInfo       1
+      PolytomousKey_Taxon            1
+      RightsInfo                     1
+      TaxonBase                      6
+  
+--><dataset>
+  <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+  <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+  <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+
+  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760"/>
+  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="751" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+  <DefinedTermBase DTYPE="Language" id="124" created="2010-12-21 15:09:09.0" uuid="e9f8cdb7-6819-44e8-95d3-e2d0690c3523" protectedtitlecache="false" titleCache="English" uri=""  vocabulary_id="10" termType="LA" idInVocabulary="eng"/>
+
+  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+  <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+  <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+
+  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
+  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+
+  
+</dataset>
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/remoting/session/CdmEntitySessionManagerTest.xml b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/eu/etaxonomy/taxeditor/remoting/session/CdmEntitySessionManagerTest.xml
new file mode 100644 (file)
index 0000000..fb48dac
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Thu Oct 09 18:00:09 CEST 2014 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  PolytomousKey where uuid like '0d53ba20-7de4-4baa-bd8a-401048447d66' (extractionmodel/by-example/SbE-PolytomousKey-17-59-56-907.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     79
+      AgentBase                      1
+      Credit                         1
+      DefinedTermBase                1
+      Extension                      1
+      KeyStatement                   10
+      KeyStatement_LanguageString    10
+      LanguageString                 19
+      OriginalSourceBase             2
+      PolytomousKey                  2
+      PolytomousKeyNode              10
+      PolytomousKeyNode_LanguageString 9
+      PolytomousKey_Credit           1
+      PolytomousKey_Extension        1
+      PolytomousKey_OriginalSourceBase 2
+      PolytomousKey_RightsInfo       1
+      PolytomousKey_Taxon            1
+      RightsInfo                     1
+      TaxonBase                      6
+  
+--><dataset>
+  <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
+
+  <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
+
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2754" modifyingtext_id="13788" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2755" modifyingtext_id="13785" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2756" modifyingtext_id="13787" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
+  <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
+
+  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11"  sec_id="10" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" createdby_id="11" sec_id="10" publish="true"/>
+
+  <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
+
+  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+
+  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760"/>
+  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+
+  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+
+  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+
+  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+
+  <DefinedTermBase DTYPE="Language" id="124" created="2010-12-21 15:09:09.0" uuid="e9f8cdb7-6819-44e8-95d3-e2d0690c3523" protectedtitlecache="false" titleCache="English" uri=""  vocabulary_id="10" termType="LA" idInVocabulary="eng"/>
+
+  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" extendedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" extendedObj_id="1550" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
+  <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
+
+  <PolytomousKey_RightsInfo PolytomousKey_id="1550" rights_id="10"/>
+
+  <KeyStatement_LanguageString KeyStatement_id="2460" label_id="13782" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2461" label_id="13783" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2462" label_id="13784" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2463" label_id="13786" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2464" label_id="13789" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2465" label_id="13790" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2466" label_id="13792" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2467" label_id="13796" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
+  <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
+
+  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
+  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourcedObj_type="eu.etaxonomy.cdm.model.description.PolytomousKey" sourcedObj_id="1550" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+
+  
+</dataset>
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.h2.db b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.h2.db
new file mode 100644 (file)
index 0000000..a500c66
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.h2.db differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.trace.db b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/h2/cdmTest.trace.db
new file mode 100644 (file)
index 0000000..ffc6811
--- /dev/null
@@ -0,0 +1,6494 @@
+10-29 15:49:12 jdbc[4]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+SELECT value FROM CdmMetaData WHERE propertyname=0 [42102-170]
+10-29 15:49:14 jdbc[7]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+SELECT value FROM CdmMetaData WHERE propertyname=0 [42102-170]
+10-29 15:49:40 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-29 15:49:40 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-29 15:49:40 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-29 15:49:40 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-29 15:49:40 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-29 15:49:40 jdbc[8]: null
+org.h2.message.DbException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.message.DbException.get(DbException.java:135)
+       at org.h2.jdbc.JdbcConnection.closeOld(JdbcConnection.java:175)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:120)
+       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
+       at org.h2.Driver.connect(Driver.java:72)
+       at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at eu.etaxonomy.cdm.database.LocalH2.createDataSource(LocalH2.java:88)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
+       at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
+       at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
+       at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
+       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
+       at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
+       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+Caused by: org.h2.jdbc.JdbcSQLException: The connection was not closed by the application and is garbage collected [90018-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       ... 60 more
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D44FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4CDD3C17E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS" not found; SQL statement:
+alter table Address drop constraint FK1ED033D4132A2FE8 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ADDRESS_AUD" not found; SQL statement:
+alter table Address_AUD drop constraint FK115657A534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D3564FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D356BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE" not found; SQL statement:
+alter table AgentBase drop constraint FK1205D356A830578 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AUD" not found; SQL statement:
+alter table AgentBase_AUD drop constraint FK29CC662734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS" not found; SQL statement:
+alter table AgentBase_Address drop constraint FK1EDFF7EB50751EC5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS" not found; SQL statement:
+alter table AgentBase_Address drop constraint FK1EDFF7EB86EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ADDRESS_AUD" not found; SQL statement:
+alter table AgentBase_Address_AUD drop constraint FK3D28383C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE" not found; SQL statement:
+alter table AgentBase_AgentBase drop constraint FK4D34EDADE9E535F9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE" not found; SQL statement:
+alter table AgentBase_AgentBase drop constraint FK4D34EDAD1C0E9907 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_AGENTBASE_AUD" not found; SQL statement:
+alter table AgentBase_AgentBase_AUD drop constraint FKA8A87CFE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION" not found; SQL statement:
+alter table AgentBase_Annotation drop constraint FK44D5F7D81E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION" not found; SQL statement:
+alter table AgentBase_Annotation drop constraint FK44D5F7D886EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table AgentBase_Annotation_AUD drop constraint FK771279A934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT" not found; SQL statement:
+alter table AgentBase_Credit drop constraint FK2636742232D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT" not found; SQL statement:
+alter table AgentBase_Credit drop constraint FK2636742286EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CREDIT_AUD" not found; SQL statement:
+alter table AgentBase_Credit_AUD drop constraint FK7FE7C0F334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE" not found; SQL statement:
+alter table AgentBase_DefinedTermBase drop constraint FK6665C77DF116FEB0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE" not found; SQL statement:
+alter table AgentBase_DefinedTermBase drop constraint FK6665C77D8D9AB196 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table AgentBase_DefinedTermBase_AUD drop constraint FKA737EECE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION" not found; SQL statement:
+alter table AgentBase_Extension drop constraint FK8E1E5676927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION" not found; SQL statement:
+alter table AgentBase_Extension drop constraint FK8E1E567686EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_EXTENSION_AUD" not found; SQL statement:
+alter table AgentBase_Extension_AUD drop constraint FK11AE594734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_IDENTIFIER" not found; SQL statement:
+alter table AgentBase_Identifier drop constraint FK410EB952E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_IDENTIFIER" not found; SQL statement:
+alter table AgentBase_Identifier drop constraint FK410EB95286EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table AgentBase_Identifier_AUD drop constraint FK3DB9EE2334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER" not found; SQL statement:
+alter table AgentBase_Marker drop constraint FK365D5D63777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER" not found; SQL statement:
+alter table AgentBase_Marker drop constraint FK365D5D6386EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MARKER_AUD" not found; SQL statement:
+alter table AgentBase_Marker_AUD drop constraint FKE40621B434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA" not found; SQL statement:
+alter table AgentBase_Media drop constraint FKE8FC5D9BC2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA" not found; SQL statement:
+alter table AgentBase_Media drop constraint FKE8FC5D9B86EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_MEDIA_AUD" not found; SQL statement:
+alter table AgentBase_Media_AUD drop constraint FK323A45EC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase drop constraint FKB482C5E63A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase drop constraint FKB482C5E686EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table AgentBase_OriginalSourceBase_AUD drop constraint FK886D90B734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO" not found; SQL statement:
+alter table AgentBase_RightsInfo drop constraint FK4FD6A3CEC13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO" not found; SQL statement:
+alter table AgentBase_RightsInfo drop constraint FK4FD6A3CE86EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table AgentBase_RightsInfo_AUD drop constraint FK79503A9F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_EMAILADDRESSES" not found; SQL statement:
+alter table AgentBase_contact_emailaddresses drop constraint FK4BD2B08E86EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_EMAILADDRESSES_AUD" not found; SQL statement:
+alter table AgentBase_contact_emailaddresses_AUD drop constraint FKCAF7E75F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_FAXNUMBERS" not found; SQL statement:
+alter table AgentBase_contact_faxnumbers drop constraint FK52E1AD9586EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_FAXNUMBERS_AUD" not found; SQL statement:
+alter table AgentBase_contact_faxnumbers_AUD drop constraint FK88A308E634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_PHONENUMBERS" not found; SQL statement:
+alter table AgentBase_contact_phonenumbers drop constraint FKC171CC2486EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_PHONENUMBERS_AUD" not found; SQL statement:
+alter table AgentBase_contact_phonenumbers_AUD drop constraint FKDDD347F534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_URLS" not found; SQL statement:
+alter table AgentBase_contact_urls drop constraint FK9A9643EC86EFC5D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AGENTBASE_CONTACT_URLS_AUD" not found; SQL statement:
+alter table AgentBase_contact_urls_AUD drop constraint FK1CE69BBD34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4164FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4163DA462D5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416DEC4385F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4166D2CE418 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416E671A9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4163781DA30 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416825BDDD3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B416AFCA96F8 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION" not found; SQL statement:
+alter table Amplification drop constraint FK9DA6B4161600EAB3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_AUD" not found; SQL statement:
+alter table Amplification_AUD drop constraint FK448EE6E734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION" not found; SQL statement:
+alter table Amplification_Annotation drop constraint FK6B251F181E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION" not found; SQL statement:
+alter table Amplification_Annotation drop constraint FK6B251F18614CEB1F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Amplification_Annotation_AUD drop constraint FK6FC00E934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER" not found; SQL statement:
+alter table Amplification_Marker drop constraint FK46E224A3777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER" not found; SQL statement:
+alter table Amplification_Marker drop constraint FK46E224A3614CEB1F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_MARKER_AUD" not found; SQL statement:
+alter table Amplification_Marker_AUD drop constraint FKA5548F434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_SINGLEREAD" not found; SQL statement:
+alter table Amplification_SingleRead drop constraint FKFE4921E7BBC12E3E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_SINGLEREAD" not found; SQL statement:
+alter table Amplification_SingleRead drop constraint FKFE4921E7614CEB1F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "AMPLIFICATION_SINGLEREAD_AUD" not found; SQL statement:
+alter table Amplification_SingleRead_AUD drop constraint FK8FB4043834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74F4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FE8D36B00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FDF299D00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION" not found; SQL statement:
+alter table Annotation drop constraint FK1A21C74FE7692740 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_AUD" not found; SQL statement:
+alter table Annotation_AUD drop constraint FK1A6BB5A034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION" not found; SQL statement:
+alter table Annotation_Annotation drop constraint FKC99DFE3F1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION" not found; SQL statement:
+alter table Annotation_Annotation drop constraint FKC99DFE3F994CCE20 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Annotation_Annotation_AUD drop constraint FKB212F49034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER" not found; SQL statement:
+alter table Annotation_Marker drop constraint FKB17EAF4A777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER" not found; SQL statement:
+alter table Annotation_Marker drop constraint FKB17EAF4A994CCE20 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ANNOTATION_MARKER_AUD" not found; SQL statement:
+alter table Annotation_Marker_AUD drop constraint FK68CE281B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CDMMETADATA" not found; SQL statement:
+alter table CdmMetaData drop constraint FK6EA78F7B4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB1100064FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB110006BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB11000677E2F09E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB1100068D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION" not found; SQL statement:
+alter table Classification drop constraint FKDB110006D1E08681 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_AUD" not found; SQL statement:
+alter table Classification_AUD drop constraint FKEB11BAD734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION" not found; SQL statement:
+alter table Classification_Annotation drop constraint FKC978FD281E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION" not found; SQL statement:
+alter table Classification_Annotation drop constraint FKC978FD2884A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Classification_Annotation_AUD drop constraint FK3D1256F934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT" not found; SQL statement:
+alter table Classification_Credit drop constraint FK4950A17232D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT" not found; SQL statement:
+alter table Classification_Credit drop constraint FK4950A17284A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_CREDIT_AUD" not found; SQL statement:
+alter table Classification_Credit_AUD drop constraint FK48AC64334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION" not found; SQL statement:
+alter table Classification_Description drop constraint FK382EB1232BEBA58D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION" not found; SQL statement:
+alter table Classification_Description drop constraint FK382EB12328459272 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION" not found; SQL statement:
+alter table Classification_Description drop constraint FK382EB12384A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_DESCRIPTION_AUD" not found; SQL statement:
+alter table Classification_Description_AUD drop constraint FK3187957434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION" not found; SQL statement:
+alter table Classification_Extension drop constraint FK715D6726927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION" not found; SQL statement:
+alter table Classification_Extension drop constraint FK715D672684A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_EXTENSION_AUD" not found; SQL statement:
+alter table Classification_Extension_AUD drop constraint FK289591F734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_GEOSCOPE" not found; SQL statement:
+alter table Classification_GeoScope drop constraint FK379FE5BC86D04E74 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_GEOSCOPE" not found; SQL statement:
+alter table Classification_GeoScope drop constraint FK379FE5BC84A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_GEOSCOPE_AUD" not found; SQL statement:
+alter table Classification_GeoScope_AUD drop constraint FKF5AAD58D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_IDENTIFIER" not found; SQL statement:
+alter table Classification_Identifier drop constraint FKC5B1BEA2E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_IDENTIFIER" not found; SQL statement:
+alter table Classification_Identifier drop constraint FKC5B1BEA284A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_IDENTIFIER_AUD" not found; SQL statement:
+alter table Classification_Identifier_AUD drop constraint FK3B9CB7334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER" not found; SQL statement:
+alter table Classification_Marker drop constraint FK59778AB3777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER" not found; SQL statement:
+alter table Classification_Marker drop constraint FK59778AB384A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_MARKER_AUD" not found; SQL statement:
+alter table Classification_Marker_AUD drop constraint FK68A9270434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Classification_OriginalSourceBase drop constraint FK91B37B363A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Classification_OriginalSourceBase drop constraint FK91B37B3684A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Classification_OriginalSourceBase_AUD drop constraint FK48A31E0734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO" not found; SQL statement:
+alter table Classification_RightsInfo drop constraint FKD479A91EC13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO" not found; SQL statement:
+alter table Classification_RightsInfo drop constraint FKD479A91E84A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CLASSIFICATION_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Classification_RightsInfo_AUD drop constraint FK3F5017EF34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABE4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABEBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABE16B9CA77 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION" not found; SQL statement:
+alter table Collection drop constraint FKF078ABECEB38EFF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_AUD" not found; SQL statement:
+alter table Collection_AUD drop constraint FKD6D4298F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION" not found; SQL statement:
+alter table Collection_Annotation drop constraint FKEA970F701E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION" not found; SQL statement:
+alter table Collection_Annotation drop constraint FKEA970F70EB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ANNOTATION_AUD" not found; SQL statement:
+alter table Collection_Annotation_AUD drop constraint FKA0CE054134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT" not found; SQL statement:
+alter table Collection_Credit drop constraint FKE0A317BA32D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT" not found; SQL statement:
+alter table Collection_Credit drop constraint FKE0A317BAEB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_CREDIT_AUD" not found; SQL statement:
+alter table Collection_Credit_AUD drop constraint FK25A8D88B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION" not found; SQL statement:
+alter table Collection_Extension drop constraint FKF68FEBDE927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION" not found; SQL statement:
+alter table Collection_Extension drop constraint FKF68FEBDEEB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_EXTENSION_AUD" not found; SQL statement:
+alter table Collection_Extension_AUD drop constraint FK1306FAAF34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_IDENTIFIER" not found; SQL statement:
+alter table Collection_Identifier drop constraint FKE6CFD0EAE12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_IDENTIFIER" not found; SQL statement:
+alter table Collection_Identifier drop constraint FKE6CFD0EAEB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_IDENTIFIER_AUD" not found; SQL statement:
+alter table Collection_Identifier_AUD drop constraint FK677579BB34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER" not found; SQL statement:
+alter table Collection_Marker drop constraint FKF0CA00FB777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER" not found; SQL statement:
+alter table Collection_Marker drop constraint FKF0CA00FBEB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MARKER_AUD" not found; SQL statement:
+alter table Collection_Marker_AUD drop constraint FK89C7394C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA" not found; SQL statement:
+alter table Collection_Media drop constraint FK7320E703C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA" not found; SQL statement:
+alter table Collection_Media drop constraint FK7320E703EB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_MEDIA_AUD" not found; SQL statement:
+alter table Collection_Media_AUD drop constraint FK9AABDB5434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Collection_OriginalSourceBase drop constraint FK37DEC57E3A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Collection_OriginalSourceBase drop constraint FK37DEC57EEB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Collection_OriginalSourceBase_AUD drop constraint FKF810044F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO" not found; SQL statement:
+alter table Collection_RightsInfo drop constraint FKF597BB66C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO" not found; SQL statement:
+alter table Collection_RightsInfo drop constraint FKF597BB66EB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "COLLECTION_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Collection_RightsInfo_AUD drop constraint FKA30BC63734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA97194FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719E8D36B00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT" not found; SQL statement:
+alter table Credit drop constraint FK78CA9719F7976FC5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_AUD" not found; SQL statement:
+alter table Credit_AUD drop constraint FK5533906A34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION" not found; SQL statement:
+alter table Credit_Annotation drop constraint FKE8DA4C351E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION" not found; SQL statement:
+alter table Credit_Annotation drop constraint FKE8DA4C354CF694E0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_ANNOTATION_AUD" not found; SQL statement:
+alter table Credit_Annotation_AUD drop constraint FK1DEB578634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER" not found; SQL statement:
+alter table Credit_Marker drop constraint FK10CC6840777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER" not found; SQL statement:
+alter table Credit_Marker drop constraint FK10CC68404CF694E0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "CREDIT_MARKER_AUD" not found; SQL statement:
+alter table Credit_Marker_AUD drop constraint FK880A761134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A664FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A663B0DA0EF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66D040DBF0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6647AF954C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6624AF3F70 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6636C6F6F6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A66CC0240B6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE" not found; SQL statement:
+alter table DefinedTermBase drop constraint FK2E340A6688206484 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table DefinedTermBase_AUD drop constraint FK86E8953734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION" not found; SQL statement:
+alter table DefinedTermBase_Annotation drop constraint FK589B6C81E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION" not found; SQL statement:
+alter table DefinedTermBase_Annotation drop constraint FK589B6C8C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_Annotation_AUD drop constraint FK28ED409934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT" not found; SQL statement:
+alter table DefinedTermBase_Continent drop constraint FK45F60AFB9AEE7205 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT" not found; SQL statement:
+alter table DefinedTermBase_Continent drop constraint FK45F60AFB901A60CE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CONTINENT_AUD" not found; SQL statement:
+alter table DefinedTermBase_Continent_AUD drop constraint FKF5DE434C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY" not found; SQL statement:
+alter table DefinedTermBase_Country drop constraint FKA2ADDA9D47CE41A0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY" not found; SQL statement:
+alter table DefinedTermBase_Country drop constraint FKA2ADDA9DCE5C0F9E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_COUNTRY_AUD" not found; SQL statement:
+alter table DefinedTermBase_Country_AUD drop constraint FK8D0171EE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT" not found; SQL statement:
+alter table DefinedTermBase_Credit drop constraint FK78FF2B1232D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT" not found; SQL statement:
+alter table DefinedTermBase_Credit drop constraint FK78FF2B12C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_CREDIT_AUD" not found; SQL statement:
+alter table DefinedTermBase_Credit_AUD drop constraint FK409B7FE334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION" not found; SQL statement:
+alter table DefinedTermBase_Extension drop constraint FK397EF986927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION" not found; SQL statement:
+alter table DefinedTermBase_Extension drop constraint FK397EF986C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_EXTENSION_AUD" not found; SQL statement:
+alter table DefinedTermBase_Extension_AUD drop constraint FK6E6F45734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_IDENTIFIER" not found; SQL statement:
+alter table DefinedTermBase_Identifier drop constraint FK1C27842E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_IDENTIFIER" not found; SQL statement:
+alter table DefinedTermBase_Identifier drop constraint FK1C27842C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table DefinedTermBase_Identifier_AUD drop constraint FKEF94B51334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER" not found; SQL statement:
+alter table DefinedTermBase_Marker drop constraint FK89261453777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER" not found; SQL statement:
+alter table DefinedTermBase_Marker drop constraint FK89261453C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MARKER_AUD" not found; SQL statement:
+alter table DefinedTermBase_Marker_AUD drop constraint FKA4B9E0A434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit drop constraint FKE9D17767F3BB39BD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit drop constraint FKE9D17767D0BDAE9B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEASUREMENTUNIT_AUD" not found; SQL statement:
+alter table DefinedTermBase_MeasurementUnit_AUD drop constraint FK2C1599B834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA" not found; SQL statement:
+alter table DefinedTermBase_Media drop constraint FK6FC908ABC2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA" not found; SQL statement:
+alter table DefinedTermBase_Media drop constraint FK6FC908ABC0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_MEDIA_AUD" not found; SQL statement:
+alter table DefinedTermBase_Media_AUD drop constraint FKDD9AE8FC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase drop constraint FKDCC094D63A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase drop constraint FKDCC094D6C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table DefinedTermBase_OriginalSourceBase_AUD drop constraint FKAE4A67A734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration drop constraint FKA72FB5AE5255EAFD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration drop constraint FKA72FB5AED0BDAE9B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_RecommendedModifierEnumeration_AUD drop constraint FK780D5C7F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION" not found; SQL statement:
+alter table DefinedTermBase_Representation drop constraint FKAAC8AFE6B31C4747 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION" not found; SQL statement:
+alter table DefinedTermBase_Representation drop constraint FKAAC8AFE6C0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_REPRESENTATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_Representation_AUD drop constraint FKB5AE7AB734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo drop constraint FK108A62BEC13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo drop constraint FK108A62BEC0DB4934 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table DefinedTermBase_RightsInfo_AUD drop constraint FK2B2B018F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure drop constraint FK6FF15DFCC9CD5B57 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure drop constraint FK6FF15DFCD0BDAE9B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_STATISTICALMEASURE_AUD" not found; SQL statement:
+alter table DefinedTermBase_StatisticalMeasure_AUD drop constraint FK3C062DCD34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration drop constraint FK2170B25C5AF2C74 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration drop constraint FK2170B25CD0BDAE9B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION_AUD" not found; SQL statement:
+alter table DefinedTermBase_SupportedCategoricalEnumeration_AUD drop constraint FKBB04522D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC034FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC03BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC033DA462D5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT" not found; SQL statement:
+alter table DerivationEvent drop constraint FK426BC038524B89D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_AUD" not found; SQL statement:
+alter table DerivationEvent_AUD drop constraint FKDABF305434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DerivationEvent_Annotation drop constraint FKEFA0D10B1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DerivationEvent_Annotation drop constraint FKEFA0D10B4AAB411A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table DerivationEvent_Annotation_AUD drop constraint FKA197815C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER" not found; SQL statement:
+alter table DerivationEvent_Marker drop constraint FKE412C816777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER" not found; SQL statement:
+alter table DerivationEvent_Marker drop constraint FKE412C8164AAB411A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DERIVATIONEVENT_MARKER_AUD" not found; SQL statement:
+alter table DerivationEvent_Marker_AUD drop constraint FK8ED0FAE734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CD4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDB56856A4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDDE9A3E39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE" not found; SQL statement:
+alter table DescriptionBase drop constraint FKFF4D58CDDA935185 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_AUD" not found; SQL statement:
+alter table DescriptionBase_AUD drop constraint FK7456581E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionBase_Annotation drop constraint FKF3AD32011E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionBase_Annotation drop constraint FKF3AD3201F1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table DescriptionBase_Annotation_AUD drop constraint FK15FE775234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT" not found; SQL statement:
+alter table DescriptionBase_Credit drop constraint FK510B2ACB32D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT" not found; SQL statement:
+alter table DescriptionBase_Credit drop constraint FK510B2ACBF1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_CREDIT_AUD" not found; SQL statement:
+alter table DescriptionBase_Credit_AUD drop constraint FK2EBEFB1C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION" not found; SQL statement:
+alter table DescriptionBase_Extension drop constraint FKD5D2B32D927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION" not found; SQL statement:
+alter table DescriptionBase_Extension drop constraint FKD5D2B32DF1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_EXTENSION_AUD" not found; SQL statement:
+alter table DescriptionBase_Extension_AUD drop constraint FK79E7827E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE" not found; SQL statement:
+alter table DescriptionBase_GeoScope drop constraint FK3ADD7CD586D04E74 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE" not found; SQL statement:
+alter table DescriptionBase_GeoScope drop constraint FK3ADD7CD5D86445CE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_GEOSCOPE_AUD" not found; SQL statement:
+alter table DescriptionBase_GeoScope_AUD drop constraint FK63A5382634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_IDENTIFIER" not found; SQL statement:
+alter table DescriptionBase_Identifier drop constraint FKEFE5F37BE12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_IDENTIFIER" not found; SQL statement:
+alter table DescriptionBase_Identifier drop constraint FKEFE5F37BF1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table DescriptionBase_Identifier_AUD drop constraint FKDCA5EBCC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER" not found; SQL statement:
+alter table DescriptionBase_Marker drop constraint FK6132140C777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER" not found; SQL statement:
+alter table DescriptionBase_Marker drop constraint FK6132140CF1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_MARKER_AUD" not found; SQL statement:
+alter table DescriptionBase_Marker_AUD drop constraint FK92DD5BDD34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase drop constraint FKDC75C70F3A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase drop constraint FKDC75C70FF1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table DescriptionBase_OriginalSourceBase_AUD drop constraint FK8F39D56034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE" not found; SQL statement:
+alter table DescriptionBase_Reference drop constraint FKC330D6395C601E49 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE" not found; SQL statement:
+alter table DescriptionBase_Reference drop constraint FKC330D639F1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_REFERENCE_AUD" not found; SQL statement:
+alter table DescriptionBase_Reference_AUD drop constraint FK76253F8A34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table DescriptionBase_RightsInfo drop constraint FKFEADDDF7C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table DescriptionBase_RightsInfo drop constraint FKFEADDDF7F1DDBFAB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table DescriptionBase_RightsInfo_AUD drop constraint FK183C384834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE" not found; SQL statement:
+alter table DescriptionBase_Scope drop constraint FKB9257C4294E290CA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE" not found; SQL statement:
+alter table DescriptionBase_Scope drop constraint FKB9257C42D86445CE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONBASE_SCOPE_AUD" not found; SQL statement:
+alter table DescriptionBase_Scope_AUD drop constraint FK75D5B91334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76714FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76714220AFEB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE767134AF0E81 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76711C3C3FF7 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE7671E8D36B00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76715E9914B8 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76716561D9B1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE767110A80E07 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76719108D9B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE" not found; SQL statement:
+alter table DescriptionElementBase drop constraint FK38FE76716D0D7A56 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_AUD drop constraint FKF3803C234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionElementBase_Annotation drop constraint FK7EE5E5DD1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION" not found; SQL statement:
+alter table DescriptionElementBase_Annotation drop constraint FK7EE5E5DD3B8BB609 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Annotation_AUD drop constraint FK2BC1DD2E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137ACF5F60B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137C6D55834 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString drop constraint FKC753F137C086B46F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table DescriptionElementBase_LanguageString_AUD drop constraint FK2D26AB8834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER" not found; SQL statement:
+alter table DescriptionElementBase_Marker drop constraint FK1CB715E8777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER" not found; SQL statement:
+alter table DescriptionElementBase_Marker drop constraint FK1CB715E83B8BB609 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MARKER_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Marker_AUD drop constraint FK1E160FB934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA" not found; SQL statement:
+alter table DescriptionElementBase_Media drop constraint FK21F70076C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA" not found; SQL statement:
+alter table DescriptionElementBase_Media drop constraint FK21F700763B8BB609 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MEDIA_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Media_AUD drop constraint FK5522034734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER" not found; SQL statement:
+alter table DescriptionElementBase_Modifier drop constraint FK97E0D105F4E35BCD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER" not found; SQL statement:
+alter table DescriptionElementBase_Modifier drop constraint FK97E0D1053B8BB609 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFIER_AUD" not found; SQL statement:
+alter table DescriptionElementBase_Modifier_AUD drop constraint FK2982F45634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C7F05D08D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C79682414B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText drop constraint FK522D90C73B8BB609 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_MODIFYINGTEXT_AUD" not found; SQL statement:
+alter table DescriptionElementBase_ModifyingText_AUD drop constraint FK6C06031834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase drop constraint FKF41ADEEBA6473CCC [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase drop constraint FKF41ADEEB3B8BB609 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_OriginalSourceBase_AUD drop constraint FK9C979F3C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATEDATA" not found; SQL statement:
+alter table DescriptionElementBase_StateData drop constraint FK592D6F6D8E7BF9AB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATEDATA" not found; SQL statement:
+alter table DescriptionElementBase_StateData drop constraint FK592D6F6D987CC6A4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATEDATA_AUD" not found; SQL statement:
+alter table DescriptionElementBase_StateData_AUD drop constraint FK1D0A1EBE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table DescriptionElementBase_StatisticalMeasurementValue drop constraint FK8AF511C2D883945E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table DescriptionElementBase_StatisticalMeasurementValue drop constraint FK8AF511C28F213219 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DESCRIPTIONELEMENTBASE_STATISTICALMEASUREMENTVALUE_AUD" not found; SQL statement:
+alter table DescriptionElementBase_StatisticalMeasurementValue_AUD drop constraint FK2DE8E9334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24974FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24973DA462D5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB24974B251DAD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497BD54CF92 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT" not found; SQL statement:
+alter table DeterminationEvent drop constraint FK1DB2497AEC8CCAA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_AUD" not found; SQL statement:
+alter table DeterminationEvent_AUD drop constraint FKA0252EE834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DeterminationEvent_Annotation drop constraint FKB74F03F71E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION" not found; SQL statement:
+alter table DeterminationEvent_Annotation drop constraint FKB74F03F76BE0BFDA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table DeterminationEvent_Annotation_AUD drop constraint FKAFDA5E4834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER" not found; SQL statement:
+alter table DeterminationEvent_Marker drop constraint FK5C475102777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER" not found; SQL statement:
+alter table DeterminationEvent_Marker drop constraint FK5C4751026BE0BFDA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_MARKER_AUD" not found; SQL statement:
+alter table DeterminationEvent_Marker_AUD drop constraint FK567F2DD334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE" not found; SQL statement:
+alter table DeterminationEvent_Reference drop constraint FK8FB1ED8355A53F64 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE" not found; SQL statement:
+alter table DeterminationEvent_Reference drop constraint FK8FB1ED836BE0BFDA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DETERMINATIONEVENT_REFERENCE_AUD" not found; SQL statement:
+alter table DeterminationEvent_Reference_AUD drop constraint FK6255A1D434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F4518084FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F451808BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F45180823A844FA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY" not found; SQL statement:
+alter table DnaQuality drop constraint FK7F451808AEA19BFE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "DNAQUALITY_AUD" not found; SQL statement:
+alter table DnaQuality_AUD drop constraint FKA79601D934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ENTITYCONSTRAINTVIOLATION" not found; SQL statement:
+alter table EntityConstraintViolation drop constraint FK8970AEC54FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ENTITYCONSTRAINTVIOLATION" not found; SQL statement:
+alter table EntityConstraintViolation drop constraint FK8970AEC5403EC952 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ENTITYVALIDATIONRESULT" not found; SQL statement:
+alter table EntityValidationResult drop constraint FK637AAC194FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1F4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1FBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION" not found; SQL statement:
+alter table Extension drop constraint FK52EF3C1FAD392BD3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "EXTENSION_AUD" not found; SQL statement:
+alter table Extension_AUD drop constraint FK92D2427034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F84FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F8BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F84220AFEB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F847C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE" not found; SQL statement:
+alter table FeatureNode drop constraint FK4CEED9F8E0AD2C59 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_AUD" not found; SQL statement:
+alter table FeatureNode_AUD drop constraint FK25AD4BC934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_INAPPLICABLEIF" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_InapplicableIf drop constraint FK56833D011128E63B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_INAPPLICABLEIF" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_InapplicableIf drop constraint FK56833D0152FCC4B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_INAPPLICABLEIF_AUD" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_InapplicableIf_AUD drop constraint FKB8D7025234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_ONLYAPPLICABLE" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_OnlyApplicable drop constraint FK6AE876AB57FA94D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_ONLYAPPLICABLE" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_OnlyApplicable drop constraint FK6AE876AB52FCC4B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURENODE_DEFINEDTERMBASE_ONLYAPPLICABLE_AUD" not found; SQL statement:
+alter table FeatureNode_DefinedTermBase_OnlyApplicable_AUD drop constraint FK3F5356FC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F944FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F94BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE" not found; SQL statement:
+alter table FeatureTree drop constraint FK4CF19F94B7892921 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_AUD" not found; SQL statement:
+alter table FeatureTree_AUD drop constraint FK355BE36534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION" not found; SQL statement:
+alter table FeatureTree_Annotation drop constraint FK5D8B8DA1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION" not found; SQL statement:
+alter table FeatureTree_Annotation drop constraint FK5D8B8DA47C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ANNOTATION_AUD" not found; SQL statement:
+alter table FeatureTree_Annotation_AUD drop constraint FK86E8E9AB34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT" not found; SQL statement:
+alter table FeatureTree_Credit drop constraint FK7536062432D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT" not found; SQL statement:
+alter table FeatureTree_Credit drop constraint FK7536062447C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_CREDIT_AUD" not found; SQL statement:
+alter table FeatureTree_Credit_AUD drop constraint FK40EA81F534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION" not found; SQL statement:
+alter table FeatureTree_Extension drop constraint FKAD1E6D34927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION" not found; SQL statement:
+alter table FeatureTree_Extension drop constraint FKAD1E6D3447C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_EXTENSION_AUD" not found; SQL statement:
+alter table FeatureTree_Extension_AUD drop constraint FKF128E10534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_IDENTIFIER" not found; SQL statement:
+alter table FeatureTree_Identifier drop constraint FK2117A54E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_IDENTIFIER" not found; SQL statement:
+alter table FeatureTree_Identifier drop constraint FK2117A5447C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_IDENTIFIER_AUD" not found; SQL statement:
+alter table FeatureTree_Identifier_AUD drop constraint FK4D905E2534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER" not found; SQL statement:
+alter table FeatureTree_Marker drop constraint FK855CEF65777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER" not found; SQL statement:
+alter table FeatureTree_Marker drop constraint FK855CEF6547C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_MARKER_AUD" not found; SQL statement:
+alter table FeatureTree_Marker_AUD drop constraint FKA508E2B634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase drop constraint FK13BD64E83A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase drop constraint FK13BD64E847C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table FeatureTree_OriginalSourceBase_AUD drop constraint FK7B5CDEB934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION" not found; SQL statement:
+alter table FeatureTree_Representation drop constraint FK8C458F8B31C4747 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION" not found; SQL statement:
+alter table FeatureTree_Representation drop constraint FK8C458F847C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_REPRESENTATION_AUD" not found; SQL statement:
+alter table FeatureTree_Representation_AUD drop constraint FKECAB4AC934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO" not found; SQL statement:
+alter table FeatureTree_RightsInfo drop constraint FK10D964D0C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO" not found; SQL statement:
+alter table FeatureTree_RightsInfo drop constraint FK10D964D047C496CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "FEATURETREE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table FeatureTree_RightsInfo_AUD drop constraint FK8926AAA134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F34FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F33DA462D5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3C15704E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F3F55AFD89 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT" not found; SQL statement:
+alter table GatheringEvent drop constraint FK6F1286F38B455EC6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_AUD" not found; SQL statement:
+alter table GatheringEvent_AUD drop constraint FK3EC034434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION" not found; SQL statement:
+alter table GatheringEvent_Annotation drop constraint FK76DDD01B1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION" not found; SQL statement:
+alter table GatheringEvent_Annotation drop constraint FK76DDD01BF95F225A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table GatheringEvent_Annotation_AUD drop constraint FK351E786C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase drop constraint FK69D9A11A7C34B6D6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase drop constraint FK69D9A11AF95F225A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table GatheringEvent_DefinedTermBase_AUD drop constraint FKB3BBB1EB34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER" not found; SQL statement:
+alter table GatheringEvent_Marker drop constraint FK7B49CF26777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER" not found; SQL statement:
+alter table GatheringEvent_Marker drop constraint FK7B49CF26F95F225A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GATHERINGEVENT_MARKER_AUD" not found; SQL statement:
+alter table GatheringEvent_Marker_AUD drop constraint FK160DF9F734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table GrantedAuthorityImpl drop constraint FKB05CF9284FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP" not found; SQL statement:
+alter table HomotypicalGroup drop constraint FK7DECCC184FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP" not found; SQL statement:
+alter table HomotypicalGroup drop constraint FK7DECCC18BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_AUD" not found; SQL statement:
+alter table HomotypicalGroup_AUD drop constraint FKE4252DE934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION" not found; SQL statement:
+alter table HomotypicalGroup_Annotation drop constraint FK7A0351D61E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION" not found; SQL statement:
+alter table HomotypicalGroup_Annotation drop constraint FK7A0351D6BFEAE500 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_ANNOTATION_AUD" not found; SQL statement:
+alter table HomotypicalGroup_Annotation_AUD drop constraint FK41E6A4A734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER" not found; SQL statement:
+alter table HomotypicalGroup_Marker drop constraint FK97D36661777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER" not found; SQL statement:
+alter table HomotypicalGroup_Marker drop constraint FK97D36661BFEAE500 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HOMOTYPICALGROUP_MARKER_AUD" not found; SQL statement:
+alter table HomotypicalGroup_Marker_AUD drop constraint FK19337BB234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE744FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74AEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE749DD57A93 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE74AF4F9F62 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP" not found; SQL statement:
+alter table HybridRelationship drop constraint FK9033CE7455F241D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_AUD" not found; SQL statement:
+alter table HybridRelationship_AUD drop constraint FK9C2BA24534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table HybridRelationship_Annotation drop constraint FK2C7E7DFA1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table HybridRelationship_Annotation drop constraint FK2C7E7DFA59832240 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table HybridRelationship_Annotation_AUD drop constraint FKACE71ECB34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER" not found; SQL statement:
+alter table HybridRelationship_Marker drop constraint FKCEF24485777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER" not found; SQL statement:
+alter table HybridRelationship_Marker drop constraint FKCEF2448559832240 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "HYBRIDRELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table HybridRelationship_Marker_AUD drop constraint FKCBAEA7D634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER" not found; SQL statement:
+alter table Identifier drop constraint FK165A88C94FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER" not found; SQL statement:
+alter table Identifier drop constraint FK165A88C9BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER" not found; SQL statement:
+alter table Identifier drop constraint FK165A88C9E67FC44F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "IDENTIFIER_AUD" not found; SQL statement:
+alter table Identifier_AUD drop constraint FKE1132A1A34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC02BEBA58D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC028459272 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING" not found; SQL statement:
+alter table IndividualAssociation_LanguageString drop constraint FKB5C75EC084FF3EDF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INDIVIDUALASSOCIATION_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table IndividualAssociation_LanguageString_AUD drop constraint FKB1A62C9134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF94FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF9BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF916B9CA77 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP" not found; SQL statement:
+alter table InstitutionalMembership drop constraint FK3C8E1FF9AAC1B820 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "INSTITUTIONALMEMBERSHIP_AUD" not found; SQL statement:
+alter table InstitutionalMembership_AUD drop constraint FK847A94A34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT" not found; SQL statement:
+alter table KeyStatement drop constraint FK7125B9F04FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT" not found; SQL statement:
+alter table KeyStatement drop constraint FK7125B9F0BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_AUD" not found; SQL statement:
+alter table KeyStatement_AUD drop constraint FK93036FC134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD89C782795 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD8DA0C376A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING" not found; SQL statement:
+alter table KeyStatement_LanguageString drop constraint FK70BB5FD8AAA67049 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "KEYSTATEMENT_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table KeyStatement_LanguageString_AUD drop constraint FKE203E1A934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LSIDAUTHORITY" not found; SQL statement:
+alter table LSIDAuthority drop constraint FK759DB8814FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LSIDAUTHORITY_NAMESPACES" not found; SQL statement:
+alter table LSIDAuthority_namespaces drop constraint FKB04948F64FFCFD94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A94FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A9BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING" not found; SQL statement:
+alter table LanguageString drop constraint FKB5FDC9A9E8D36B00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_AUD" not found; SQL statement:
+alter table LanguageString_AUD drop constraint FK896AFAFA34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION" not found; SQL statement:
+alter table LanguageString_Annotation drop constraint FK8400DFA51E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION" not found; SQL statement:
+alter table LanguageString_Annotation drop constraint FK8400DFA537998500 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_ANNOTATION_AUD" not found; SQL statement:
+alter table LanguageString_Annotation_AUD drop constraint FKD3BAB2F634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER" not found; SQL statement:
+alter table LanguageString_Marker drop constraint FK8DA633B0777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER" not found; SQL statement:
+alter table LanguageString_Marker drop constraint FK8DA633B037998500 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "LANGUAGESTRING_MARKER_AUD" not found; SQL statement:
+alter table LanguageString_Marker_AUD drop constraint FK2331098134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805A4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805ABC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER" not found; SQL statement:
+alter table Marker drop constraint FK88F1805AD64DC020 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MARKER_AUD" not found; SQL statement:
+alter table Marker_AUD drop constraint FKB951F12B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264FBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F3DA462D5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F14D2C695 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F3781DA30 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F1600EAB3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT" not found; SQL statement:
+alter table MaterialOrMethodEvent drop constraint FK458A264F9A129634 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_AUD drop constraint FK8C8C94A034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation drop constraint FKD9943F3F1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation drop constraint FKD9943F3F2F50355A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_ANNOTATION_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_Annotation_AUD drop constraint FK6B00B59034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker drop constraint FKF0BD704A777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker drop constraint FKF0BD704A2F50355A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MATERIALORMETHODEVENT_MARKER_AUD" not found; SQL statement:
+alter table MaterialOrMethodEvent_Marker_AUD drop constraint FK78C4691B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC44FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC4BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA" not found; SQL statement:
+alter table Media drop constraint FK46C7FC4C2445443 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA" not found; SQL statement:
+alter table MediaKey_NamedArea drop constraint FK31E7D4023FF8E7B2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA" not found; SQL statement:
+alter table MediaKey_NamedArea drop constraint FK31E7D402BE59D760 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_NAMEDAREA_AUD" not found; SQL statement:
+alter table MediaKey_NamedArea_AUD drop constraint FK922630D334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE" not found; SQL statement:
+alter table MediaKey_Scope drop constraint FKBFFEE8F05431B96E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE" not found; SQL statement:
+alter table MediaKey_Scope drop constraint FKBFFEE8F0BE59D760 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_SCOPE_AUD" not found; SQL statement:
+alter table MediaKey_Scope_AUD drop constraint FK63AD1EC134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON" not found; SQL statement:
+alter table MediaKey_Taxon drop constraint FKC00C3966DE9A3E39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON" not found; SQL statement:
+alter table MediaKey_Taxon drop constraint FKC00C3966815C7E9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAKEY_TAXON_AUD" not found; SQL statement:
+alter table MediaKey_Taxon_AUD drop constraint FK311443734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB14FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB1BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION" not found; SQL statement:
+alter table MediaRepresentation drop constraint FK1966BDB1C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A455444FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A45544BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART" not found; SQL statement:
+alter table MediaRepresentationPart drop constraint FK67A45544E3818E37 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATIONPART_AUD" not found; SQL statement:
+alter table MediaRepresentationPart_AUD drop constraint FKA75C411534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION_AUD" not found; SQL statement:
+alter table MediaRepresentation_AUD drop constraint FK67AAAB0234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIAREPRESENTATION_MEDIAREPRESENTATIONPART_AUD" not found; SQL statement:
+alter table MediaRepresentation_MediaRepresentationPart_AUD drop constraint FK3544378734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_AUD" not found; SQL statement:
+alter table Media_AUD drop constraint FKF70B2B9534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION" not found; SQL statement:
+alter table Media_Annotation drop constraint FKA020DAAA1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION" not found; SQL statement:
+alter table Media_Annotation drop constraint FKA020DAAAC2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ANNOTATION_AUD" not found; SQL statement:
+alter table Media_Annotation_AUD drop constraint FK99ABA37B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT" not found; SQL statement:
+alter table Media_Credit drop constraint FKC1F78FF432D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT" not found; SQL statement:
+alter table Media_Credit drop constraint FKC1F78FF4C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_CREDIT_AUD" not found; SQL statement:
+alter table Media_Credit_AUD drop constraint FKDB32A3C534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E12BEBA58D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E128459272 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION" not found; SQL statement:
+alter table Media_Description drop constraint FK368283E1C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_DESCRIPTION_AUD" not found; SQL statement:
+alter table Media_Description_AUD drop constraint FK6817D93234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION" not found; SQL statement:
+alter table Media_Extension drop constraint FKDB62D164927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION" not found; SQL statement:
+alter table Media_Extension drop constraint FKDB62D164C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_EXTENSION_AUD" not found; SQL statement:
+alter table Media_Extension_AUD drop constraint FKE13FAD3534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_IDENTIFIER" not found; SQL statement:
+alter table Media_Identifier drop constraint FK9C599C24E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_IDENTIFIER" not found; SQL statement:
+alter table Media_Identifier drop constraint FK9C599C24C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_IDENTIFIER_AUD" not found; SQL statement:
+alter table Media_Identifier_AUD drop constraint FK605317F534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784A1CA19B1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784A0A6EDCE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING" not found; SQL statement:
+alter table Media_LanguageString drop constraint FK353DB784C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table Media_LanguageString_AUD drop constraint FK68FA835534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER" not found; SQL statement:
+alter table Media_Marker drop constraint FKD21E7935777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER" not found; SQL statement:
+alter table Media_Marker drop constraint FKD21E7935C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_MARKER_AUD" not found; SQL statement:
+alter table Media_Marker_AUD drop constraint FK3F51048634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Media_OriginalSourceBase drop constraint FK2FEEB6B83A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Media_OriginalSourceBase drop constraint FK2FEEB6B8C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Media_OriginalSourceBase_AUD drop constraint FK97F0C88934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION" not found; SQL statement:
+alter table Media_Representation drop constraint FK1B8712C88F6CABE6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION" not found; SQL statement:
+alter table Media_Representation drop constraint FK1B8712C8BE59D760 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_REPRESENTATION_AUD" not found; SQL statement:
+alter table Media_Representation_AUD drop constraint FK8DC9C9934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO" not found; SQL statement:
+alter table Media_RightsInfo drop constraint FKAB2186A0C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO" not found; SQL statement:
+alter table Media_RightsInfo drop constraint FKAB2186A0C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Media_RightsInfo_AUD drop constraint FK9BE9647134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE" not found; SQL statement:
+alter table Media_Sequence drop constraint FK61D09FCF29B4761 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE" not found; SQL statement:
+alter table Media_Sequence drop constraint FK61D09FC3282B64 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_SEQUENCE_AUD" not found; SQL statement:
+alter table Media_Sequence_AUD drop constraint FK3C7BD9CD34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE" not found; SQL statement:
+alter table Media_TaxonBase drop constraint FK1ABD49E07C3D0017 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE" not found; SQL statement:
+alter table Media_TaxonBase drop constraint FK1ABD49E0BE59D760 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MEDIA_TAXONBASE_AUD" not found; SQL statement:
+alter table Media_TaxonBase_AUD drop constraint FK857187B134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA" not found; SQL statement:
+alter table MultiAccessKey_NamedArea drop constraint FK1F5A74893FF8E7B2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA" not found; SQL statement:
+alter table MultiAccessKey_NamedArea drop constraint FK1F5A7489B4555A9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_NAMEDAREA_AUD" not found; SQL statement:
+alter table MultiAccessKey_NamedArea_AUD drop constraint FK4CB735DA34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE" not found; SQL statement:
+alter table MultiAccessKey_Scope drop constraint FKCC6CE4F75431B96E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE" not found; SQL statement:
+alter table MultiAccessKey_Scope drop constraint FKCC6CE4F7B4555A9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_SCOPE_AUD" not found; SQL statement:
+alter table MultiAccessKey_Scope_AUD drop constraint FK511FBF4834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON" not found; SQL statement:
+alter table MultiAccessKey_Taxon drop constraint FKCC7A356DDE9A3E39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON" not found; SQL statement:
+alter table MultiAccessKey_Taxon drop constraint FKCC7A356DB64A7B29 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "MULTIACCESSKEY_TAXON_AUD" not found; SQL statement:
+alter table MultiAccessKey_Taxon_AUD drop constraint FKF083E4BE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E510834FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083AEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E5108316CDFF85 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E5108328482454 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP" not found; SQL statement:
+alter table NameRelationship drop constraint FK5E51083AF619DE3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_AUD" not found; SQL statement:
+alter table NameRelationship_AUD drop constraint FK743F44D434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table NameRelationship_Annotation drop constraint FK2E38AC8B1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table NameRelationship_Annotation drop constraint FK2E38AC8B7B4CB560 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table NameRelationship_Annotation_AUD drop constraint FKD1D59CDC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER" not found; SQL statement:
+alter table NameRelationship_Marker drop constraint FKE3E46396777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER" not found; SQL statement:
+alter table NameRelationship_Marker drop constraint FKE3E463967B4CB560 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NAMERELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table NameRelationship_Marker_AUD drop constraint FKCD68D66734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88B4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88BBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88BAEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS" not found; SQL statement:
+alter table NomenclaturalStatus drop constraint FK1FFEC88B7029BD9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_AUD drop constraint FKFB2DB8DC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation drop constraint FKE6E91F831E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation drop constraint FKE6E91F838D2CB1D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_ANNOTATION_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_Annotation_AUD drop constraint FK6A3D3D434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER" not found; SQL statement:
+alter table NomenclaturalStatus_Marker drop constraint FK2F5128E777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER" not found; SQL statement:
+alter table NomenclaturalStatus_Marker drop constraint FK2F5128E8D2CB1D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "NOMENCLATURALSTATUS_MARKER_AUD" not found; SQL statement:
+alter table NomenclaturalStatus_Marker_AUD drop constraint FK8619495F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5D4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5DBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5DAEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE" not found; SQL statement:
+alter table OriginalSourceBase drop constraint FK505F2E5D966B96B2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table OriginalSourceBase_AUD drop constraint FK9662E5AE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION" not found; SQL statement:
+alter table OriginalSourceBase_Annotation drop constraint FK208142711E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION" not found; SQL statement:
+alter table OriginalSourceBase_Annotation drop constraint FK20814271B029DDA0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table OriginalSourceBase_Annotation_AUD drop constraint FKA074CFC234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER" not found; SQL statement:
+alter table OriginalSourceBase_Marker drop constraint FKB3FFDC7C777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER" not found; SQL statement:
+alter table OriginalSourceBase_Marker drop constraint FKB3FFDC7CB029DDA0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "ORIGINALSOURCEBASE_MARKER_AUD" not found; SQL statement:
+alter table OriginalSourceBase_Marker_AUD drop constraint FKBFB16C4D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP" not found; SQL statement:
+alter table PermissionGroup drop constraint FK629941D04FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table PermissionGroup_GrantedAuthorityImpl drop constraint FK53114371857F6C2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PERMISSIONGROUP_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table PermissionGroup_GrantedAuthorityImpl drop constraint FK5311437CA0971A3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B1384FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B138BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY" not found; SQL statement:
+alter table PolytomousKey drop constraint FKA9E6B138576595C3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775ABC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4220AFEB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775AC73A7584 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4FEE4393 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A808998FB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A9D3C2E93 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A4382686A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775A1C0483C4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE" not found; SQL statement:
+alter table PolytomousKeyNode drop constraint FK860775ADE9A3E39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_AUD" not found; SQL statement:
+alter table PolytomousKeyNode_AUD drop constraint FK6A6D682B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12EF05D08D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12E9682414B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString drop constraint FK5574E12EF135C42B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEYNODE_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table PolytomousKeyNode_LanguageString_AUD drop constraint FKE0D0C7FF34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_AUD" not found; SQL statement:
+alter table PolytomousKey_AUD drop constraint FK867830934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION" not found; SQL statement:
+alter table PolytomousKey_Annotation drop constraint FK278CF8B61E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION" not found; SQL statement:
+alter table PolytomousKey_Annotation drop constraint FK278CF8B689D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ANNOTATION_AUD" not found; SQL statement:
+alter table PolytomousKey_Annotation_AUD drop constraint FK3281DB8734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT" not found; SQL statement:
+alter table PolytomousKey_Credit drop constraint FKADC940032D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT" not found; SQL statement:
+alter table PolytomousKey_Credit drop constraint FKADC940089D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_CREDIT_AUD" not found; SQL statement:
+alter table PolytomousKey_Credit_AUD drop constraint FK629EC1D134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION" not found; SQL statement:
+alter table PolytomousKey_Extension drop constraint FKAE34C1D8927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION" not found; SQL statement:
+alter table PolytomousKey_Extension drop constraint FKAE34C1D889D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_EXTENSION_AUD" not found; SQL statement:
+alter table PolytomousKey_Extension_AUD drop constraint FK1FFC43A934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_IDENTIFIER" not found; SQL statement:
+alter table PolytomousKey_Identifier drop constraint FK23C5BA30E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_IDENTIFIER" not found; SQL statement:
+alter table PolytomousKey_Identifier drop constraint FK23C5BA3089D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_IDENTIFIER_AUD" not found; SQL statement:
+alter table PolytomousKey_Identifier_AUD drop constraint FKF929500134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER" not found; SQL statement:
+alter table PolytomousKey_Marker drop constraint FK1B037D41777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER" not found; SQL statement:
+alter table PolytomousKey_Marker drop constraint FK1B037D4189D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_MARKER_AUD" not found; SQL statement:
+alter table PolytomousKey_Marker_AUD drop constraint FKC6BD229234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA" not found; SQL statement:
+alter table PolytomousKey_NamedArea drop constraint FK1C727CFF3FF8E7B2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA" not found; SQL statement:
+alter table PolytomousKey_NamedArea drop constraint FK1C727CFF89D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_NAMEDAREA_AUD" not found; SQL statement:
+alter table PolytomousKey_NamedArea_AUD drop constraint FK750A135034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase drop constraint FK839208C43A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase drop constraint FK839208C489D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table PolytomousKey_OriginalSourceBase_AUD drop constraint FKE644349534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO" not found; SQL statement:
+alter table PolytomousKey_RightsInfo drop constraint FK328DA4ACC13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO" not found; SQL statement:
+alter table PolytomousKey_RightsInfo drop constraint FK328DA4AC89D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_RIGHTSINFO_AUD" not found; SQL statement:
+alter table PolytomousKey_RightsInfo_AUD drop constraint FK34BF9C7D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE" not found; SQL statement:
+alter table PolytomousKey_Scope drop constraint FK8D97986D5431B96E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE" not found; SQL statement:
+alter table PolytomousKey_Scope drop constraint FK8D97986D89D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_SCOPE_AUD" not found; SQL statement:
+alter table PolytomousKey_Scope_AUD drop constraint FK4E37C7BE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON" not found; SQL statement:
+alter table PolytomousKey_Taxon drop constraint FK8DA4E8E3DE9A3E39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON" not found; SQL statement:
+alter table PolytomousKey_Taxon drop constraint FK8DA4E8E389D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE" not found; SQL statement:
+alter table PolytomousKey_TaxonBase drop constraint FKED8F3A547C3D0017 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE" not found; SQL statement:
+alter table PolytomousKey_TaxonBase drop constraint FKED8F3A5489D97CB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXONBASE_AUD" not found; SQL statement:
+alter table PolytomousKey_TaxonBase_AUD drop constraint FKC42E1E2534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "POLYTOMOUSKEY_TAXON_AUD" not found; SQL statement:
+alter table PolytomousKey_Taxon_AUD drop constraint FKED9BED3434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F34FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER" not found; SQL statement:
+alter table Primer drop constraint FK8EFB89F3D0374392 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_AUD" not found; SQL statement:
+alter table Primer_AUD drop constraint FK319B864434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION" not found; SQL statement:
+alter table Primer_Annotation drop constraint FK9044ED1B1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION" not found; SQL statement:
+alter table Primer_Annotation drop constraint FK9044ED1B48BD1F55 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_ANNOTATION_AUD" not found; SQL statement:
+alter table Primer_Annotation_AUD drop constraint FKDBAF156C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER" not found; SQL statement:
+alter table Primer_Marker drop constraint FKF6C76C26777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER" not found; SQL statement:
+alter table Primer_Marker drop constraint FKF6C76C2648BD1F55 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "PRIMER_MARKER_AUD" not found; SQL statement:
+alter table Primer_Marker_AUD drop constraint FK2F7516F734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BD741CE1F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BAD54327F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2B403E17F4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE" not found; SQL statement:
+alter table Reference drop constraint FK404D5F2BAEC3B8B8 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_AUD" not found; SQL statement:
+alter table Reference_AUD drop constraint FK8F0FFF7C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION" not found; SQL statement:
+alter table Reference_Annotation drop constraint FKFC824E31E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION" not found; SQL statement:
+alter table Reference_Annotation drop constraint FKFC824E38D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ANNOTATION_AUD" not found; SQL statement:
+alter table Reference_Annotation_AUD drop constraint FKF3C1293434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT" not found; SQL statement:
+alter table Reference_Credit drop constraint FK5BC6DEAD32D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT" not found; SQL statement:
+alter table Reference_Credit drop constraint FK5BC6DEAD8D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_CREDIT_AUD" not found; SQL statement:
+alter table Reference_Credit_AUD drop constraint FK4AD9EDFE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION" not found; SQL statement:
+alter table Reference_Extension drop constraint FKDEFCDC0B927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION" not found; SQL statement:
+alter table Reference_Extension drop constraint FKDEFCDC0B8D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_EXTENSION_AUD" not found; SQL statement:
+alter table Reference_Extension_AUD drop constraint FK1DF60C5C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_IDENTIFIER" not found; SQL statement:
+alter table Reference_Identifier drop constraint FKC00E65DE12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_IDENTIFIER" not found; SQL statement:
+alter table Reference_Identifier drop constraint FKC00E65D8D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_IDENTIFIER_AUD" not found; SQL statement:
+alter table Reference_Identifier_AUD drop constraint FKBA689DAE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER" not found; SQL statement:
+alter table Reference_Marker drop constraint FK6BEDC7EE777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER" not found; SQL statement:
+alter table Reference_Marker drop constraint FK6BEDC7EE8D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MARKER_AUD" not found; SQL statement:
+alter table Reference_Marker_AUD drop constraint FKAEF84EBF34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA" not found; SQL statement:
+alter table Reference_Media drop constraint FKBBEF5B0C2C29593 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA" not found; SQL statement:
+alter table Reference_Media drop constraint FKBBEF5B08D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_MEDIA_AUD" not found; SQL statement:
+alter table Reference_Media_AUD drop constraint FK8318CB8134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Reference_OriginalSourceBase drop constraint FKD3E8B7F13A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table Reference_OriginalSourceBase drop constraint FKD3E8B7F18D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table Reference_OriginalSourceBase_AUD drop constraint FKC025854234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO" not found; SQL statement:
+alter table Reference_RightsInfo drop constraint FK1AC8D0D9C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO" not found; SQL statement:
+alter table Reference_RightsInfo drop constraint FK1AC8D0D98D0FB4DA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REFERENCE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table Reference_RightsInfo_AUD drop constraint FKF5FEEA2A34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation drop constraint FK98592F33473FB677 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation drop constraint FK98592F33ECEEF4AF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RELATIONSHIPTERMBASE_INVERSEREPRESENTATION_AUD" not found; SQL statement:
+alter table RelationshipTermBase_inverseRepresentation_AUD drop constraint FK5D248B8434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724ED4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724EDBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION" not found; SQL statement:
+alter table Representation drop constraint FK9C4724EDE8D36B00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_AUD" not found; SQL statement:
+alter table Representation_AUD drop constraint FK294D143E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION" not found; SQL statement:
+alter table Representation_Annotation drop constraint FK371091E11E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION" not found; SQL statement:
+alter table Representation_Annotation drop constraint FK371091E147E8AE60 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_ANNOTATION_AUD" not found; SQL statement:
+alter table Representation_Annotation_AUD drop constraint FK36EEE73234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER" not found; SQL statement:
+alter table Representation_Marker drop constraint FK560063EC777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER" not found; SQL statement:
+alter table Representation_Marker drop constraint FK560063EC47E8AE60 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "REPRESENTATION_MARKER_AUD" not found; SQL statement:
+alter table Representation_Marker_AUD drop constraint FKD640BBBD34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK252273454FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345E8D36B00 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345F7976FC5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO" not found; SQL statement:
+alter table RightsInfo drop constraint FK25227345E6D2D338 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_AUD" not found; SQL statement:
+alter table RightsInfo_AUD drop constraint FK1CA9769634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION" not found; SQL statement:
+alter table RightsInfo_Annotation drop constraint FKECC95C891E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION" not found; SQL statement:
+alter table RightsInfo_Annotation drop constraint FKECC95C89EFE62333 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_ANNOTATION_AUD" not found; SQL statement:
+alter table RightsInfo_Annotation_AUD drop constraint FK78721DDA34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER" not found; SQL statement:
+alter table RightsInfo_Marker drop constraint FK81D8C294777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER" not found; SQL statement:
+alter table RightsInfo_Marker drop constraint FK81D8C294EFE62333 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "RIGHTSINFO_MARKER_AUD" not found; SQL statement:
+alter table RightsInfo_Marker_AUD drop constraint FK8BF9866534869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE14FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE1BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE19F65E72B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE16D2CE418 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE" not found; SQL statement:
+alter table Sequence drop constraint FK544ADBE1E671A9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_AUD" not found; SQL statement:
+alter table Sequence_AUD drop constraint FK39F4313234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION" not found; SQL statement:
+alter table Sequence_Annotation drop constraint FK1010BA6D1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION" not found; SQL statement:
+alter table Sequence_Annotation drop constraint FK1010BA6DD57FFDD5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_ANNOTATION_AUD" not found; SQL statement:
+alter table Sequence_Annotation_AUD drop constraint FKCB4FE9BE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER" not found; SQL statement:
+alter table Sequence_Marker drop constraint FK3D22B278777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER" not found; SQL statement:
+alter table Sequence_Marker drop constraint FK3D22B278D57FFDD5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_MARKER_AUD" not found; SQL statement:
+alter table Sequence_Marker_AUD drop constraint FKAF40E44934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE" not found; SQL statement:
+alter table Sequence_Reference drop constraint FK6944904D1DDDC219 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE" not found; SQL statement:
+alter table Sequence_Reference drop constraint FK6944904DD57FFDD5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_REFERENCE_AUD" not found; SQL statement:
+alter table Sequence_Reference_AUD drop constraint FK18E5CF9E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_SINGLEREAD" not found; SQL statement:
+alter table Sequence_SingleRead drop constraint FKA334BD3CBBC12E3E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_SINGLEREAD" not found; SQL statement:
+alter table Sequence_SingleRead drop constraint FKA334BD3CD57FFDD5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SEQUENCE_SINGLEREAD_AUD" not found; SQL statement:
+alter table Sequence_SingleRead_AUD drop constraint FK5407ED0D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1EBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E3DA462D5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E614CEB1F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1EE0EBCFFE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E55DDFE96 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD" not found; SQL statement:
+alter table SingleRead drop constraint FKAD45CA1E48BD1F55 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_AUD" not found; SQL statement:
+alter table SingleRead_AUD drop constraint FKA323B8EF34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION" not found; SQL statement:
+alter table SingleRead_Annotation drop constraint FK33E974101E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION" not found; SQL statement:
+alter table SingleRead_Annotation drop constraint FK33E974103A5A5E15 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_ANNOTATION_AUD" not found; SQL statement:
+alter table SingleRead_Annotation_AUD drop constraint FK7B1D19E134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER" not found; SQL statement:
+alter table SingleRead_Marker drop constraint FKCF47B59B777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER" not found; SQL statement:
+alter table SingleRead_Marker drop constraint FKCF47B59B3A5A5E15 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SINGLEREAD_MARKER_AUD" not found; SQL statement:
+alter table SingleRead_Marker_AUD drop constraint FKD3199DEC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32724FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272F53E6AFA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32728C35BD07 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272E35D77A3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272EB62BE9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272156CF96 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272C8505DB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32727CC340C5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA327295CC5995 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA32724FF2F98B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272F95F225A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase drop constraint FK21CA3272DADF76EA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_AUD drop constraint FKF3D3D74334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation drop constraint FK365E4F3C1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation drop constraint FK365E4F3C3B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Annotation_AUD drop constraint FK34187F0D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit drop constraint FK7E3A1D8632D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit drop constraint FK7E3A1D863B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_CREDIT_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Credit_AUD drop constraint FK7170185734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent drop constraint FK20132036BD59A1AD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent drop constraint FK2013203654C216AA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_DerivationEvent_AUD drop constraint FKA4A8430734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension drop constraint FKE03B8292927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension drop constraint FKE03B82923B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_EXTENSION_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Extension_AUD drop constraint FK7AE0176334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_IDENTIFIER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Identifier drop constraint FK329710B6E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_IDENTIFIER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Identifier drop constraint FK329710B63B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Identifier_AUD drop constraint FKFABFF38734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA9316CD55E0D6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA93168028C309 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString drop constraint FKCFAA93163B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_LanguageString_AUD drop constraint FK38B45E734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker drop constraint FK8E6106C7777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker drop constraint FK8E6106C73B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_MARKER_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Marker_AUD drop constraint FKD58E791834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase drop constraint FKCA7F794A3A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase drop constraint FKCA7F794A3B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_OriginalSourceBase_AUD drop constraint FK2059F21B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo drop constraint FK415EFB32C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo drop constraint FK415EFB323B8A5ABA [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_RightsInfo_AUD drop constraint FK3656400334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_SEQUENCE" not found; SQL statement:
+alter table SpecimenOrObservationBase_Sequence drop constraint FKBBF27B0E35B10F24 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_SEQUENCE" not found; SQL statement:
+alter table SpecimenOrObservationBase_Sequence drop constraint FKBBF27B0E7EE2770E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SPECIMENOROBSERVATIONBASE_SEQUENCE_AUD" not found; SQL statement:
+alter table SpecimenOrObservationBase_Sequence_AUD drop constraint FK392E71DF34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BBBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA" not found; SQL statement:
+alter table StateData drop constraint FKFB1697BB682A4E4B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_AUD" not found; SQL statement:
+alter table StateData_AUD drop constraint FKDA6A700C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE" not found; SQL statement:
+alter table StateData_DefinedTermBase drop constraint FK107321E2F4E35BCD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE" not found; SQL statement:
+alter table StateData_DefinedTermBase drop constraint FK107321E28E7BF9AB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table StateData_DefinedTermBase_AUD drop constraint FK7C978EB334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2ADF05D08D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2AD9682414B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING" not found; SQL statement:
+alter table StateData_LanguageString drop constraint FK93FFD2AD8E7BF9AB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATEDATA_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table StateData_LanguageString_AUD drop constraint FK1578E1FE34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE02904FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE0290BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE" not found; SQL statement:
+alter table StatisticalMeasurementValue drop constraint FK2DCE02904C428112 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_AUD" not found; SQL statement:
+alter table StatisticalMeasurementValue_AUD drop constraint FKBB16686134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase drop constraint FK686C42B7F4E35BCD [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase drop constraint FK686C42B75C9F4F2B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE_AUD" not found; SQL statement:
+alter table StatisticalMeasurementValue_DefinedTermBase_AUD drop constraint FKFEBA3D0834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB34FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3AEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB34BAC703F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB3F8991B9D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP" not found; SQL statement:
+alter table SynonymRelationship drop constraint FKF483ADB380924EEC [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_AUD" not found; SQL statement:
+alter table SynonymRelationship_AUD drop constraint FK8AEBCA0434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table SynonymRelationship_Annotation drop constraint FKF494F15B1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table SynonymRelationship_Annotation drop constraint FKF494F15B260A8379 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table SynonymRelationship_Annotation_AUD drop constraint FKD3E2F9AC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER" not found; SQL statement:
+alter table SynonymRelationship_Marker drop constraint FK7A439066777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER" not found; SQL statement:
+alter table SynonymRelationship_Marker drop constraint FK7A439066260A8379 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "SYNONYMRELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table SynonymRelationship_Marker_AUD drop constraint FK93C51B3734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49BBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B8492378F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B74FED214 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE" not found; SQL statement:
+alter table TaxonBase drop constraint FK9249B49B7C7B5AED [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_AUD" not found; SQL statement:
+alter table TaxonBase_AUD drop constraint FK37041CEC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonBase_Annotation drop constraint FK41ED09731E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonBase_Annotation drop constraint FK41ED09739C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonBase_Annotation_AUD drop constraint FK8C145C434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT" not found; SQL statement:
+alter table TaxonBase_Credit drop constraint FK4CB48B3D32D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT" not found; SQL statement:
+alter table TaxonBase_Credit drop constraint FK4CB48B3D9C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_CREDIT_AUD" not found; SQL statement:
+alter table TaxonBase_Credit_AUD drop constraint FK7CFED28E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION" not found; SQL statement:
+alter table TaxonBase_Extension drop constraint FKF961257B927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION" not found; SQL statement:
+alter table TaxonBase_Extension drop constraint FKF961257B9C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_EXTENSION_AUD" not found; SQL statement:
+alter table TaxonBase_Extension_AUD drop constraint FK71381DCC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonBase_Identifier drop constraint FK3E25CAEDE12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonBase_Identifier drop constraint FK3E25CAED9C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table TaxonBase_Identifier_AUD drop constraint FKCF68BA3E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER" not found; SQL statement:
+alter table TaxonBase_Marker drop constraint FK5CDB747E777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER" not found; SQL statement:
+alter table TaxonBase_Marker drop constraint FK5CDB747E9C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_MARKER_AUD" not found; SQL statement:
+alter table TaxonBase_Marker_AUD drop constraint FKE11D334F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase drop constraint FKFB680C813A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase drop constraint FKFB680C819C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table TaxonBase_OriginalSourceBase_AUD drop constraint FKB7C811D234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonBase_RightsInfo drop constraint FK4CEDB569C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonBase_RightsInfo drop constraint FK4CEDB5699C9D39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table TaxonBase_RightsInfo_AUD drop constraint FKAFF06BA34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC02BEBA58D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC028459272 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING" not found; SQL statement:
+alter table TaxonInteraction_LanguageString drop constraint FK579A1DC086C86FE0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONINTERACTION_LANGUAGESTRING_AUD" not found; SQL statement:
+alter table TaxonInteraction_LanguageString_AUD drop constraint FK9E016B9134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C64FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6BFEAE500 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6617E62B3 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6D7BE55A0 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C62B4FEDD6 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C6B14B73EF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C67F90DF03 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE" not found; SQL statement:
+alter table TaxonNameBase drop constraint FKB4870C662AD57A2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_AUD drop constraint FK5CA2CB9734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonNameBase_Annotation drop constraint FK9E7794681E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION" not found; SQL statement:
+alter table TaxonNameBase_Annotation drop constraint FK9E7794688C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonNameBase_Annotation_AUD drop constraint FKB6734E3934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT" not found; SQL statement:
+alter table TaxonNameBase_Credit drop constraint FK29BCD8B232D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT" not found; SQL statement:
+alter table TaxonNameBase_Credit drop constraint FK29BCD8B28C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_CREDIT_AUD" not found; SQL statement:
+alter table TaxonNameBase_Credit_AUD drop constraint FKD9895D8334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION" not found; SQL statement:
+alter table TaxonNameBase_Extension drop constraint FKC28EE7E6927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION" not found; SQL statement:
+alter table TaxonNameBase_Extension drop constraint FKC28EE7E68C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_EXTENSION_AUD" not found; SQL statement:
+alter table TaxonNameBase_Extension_AUD drop constraint FK8F98B2B734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonNameBase_Identifier drop constraint FK9AB055E2E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_IDENTIFIER" not found; SQL statement:
+alter table TaxonNameBase_Identifier drop constraint FK9AB055E28C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_IDENTIFIER_AUD" not found; SQL statement:
+alter table TaxonNameBase_Identifier_AUD drop constraint FK7D1AC2B334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER" not found; SQL statement:
+alter table TaxonNameBase_Marker drop constraint FK39E3C1F3777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER" not found; SQL statement:
+alter table TaxonNameBase_Marker drop constraint FK39E3C1F38C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_MARKER_AUD" not found; SQL statement:
+alter table TaxonNameBase_Marker_AUD drop constraint FK3DA7BE4434869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus drop constraint FK560BA7926615E90D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus drop constraint FK560BA7928C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_NOMENCLATURALSTATUS_AUD" not found; SQL statement:
+alter table TaxonNameBase_NomenclaturalStatus_AUD drop constraint FK9215BC6334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase drop constraint FKF746D2763A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase drop constraint FKF746D2768C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_OriginalSourceBase_AUD drop constraint FK7A38D54734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo drop constraint FKA978405EC13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo drop constraint FKA978405E8C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_RIGHTSINFO_AUD" not found; SQL statement:
+alter table TaxonNameBase_RightsInfo_AUD drop constraint FKB8B10F2F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase drop constraint FKC0D6BBB5C7DF530C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase drop constraint FKC0D6BBB58C85CF94 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNAMEBASE_TYPEDESIGNATIONBASE_AUD" not found; SQL statement:
+alter table TaxonNameBase_TypeDesignationBase_AUD drop constraint FKBB24070634869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC84A3CE1B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC39DB2DFB [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCC381381B5 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCCC05993E [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE" not found; SQL statement:
+alter table TaxonNode drop constraint FK924F5BCCDE9A3E39 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_AUD" not found; SQL statement:
+alter table TaxonNode_AUD drop constraint FKE090C39D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION" not found; SQL statement:
+alter table TaxonNode_Annotation drop constraint FKD8A9A9A21E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION" not found; SQL statement:
+alter table TaxonNode_Annotation drop constraint FKD8A9A9A2927D8399 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonNode_Annotation_AUD drop constraint FKB2C4367334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER" not found; SQL statement:
+alter table TaxonNode_Marker drop constraint FK395842D777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER" not found; SQL statement:
+alter table TaxonNode_Marker drop constraint FK395842D927D8399 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONNODE_MARKER_AUD" not found; SQL statement:
+alter table TaxonNode_Marker_AUD drop constraint FK77D9D37E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA024FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02AEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02E71EF6CE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02F8991B9D [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP" not found; SQL statement:
+alter table TaxonRelationship drop constraint FK7482BA02F11BD77B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_AUD" not found; SQL statement:
+alter table TaxonRelationship_AUD drop constraint FKA0DE16D334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table TaxonRelationship_Annotation drop constraint FK82C86DAC1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION" not found; SQL statement:
+alter table TaxonRelationship_Annotation drop constraint FK82C86DAC2BD180D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_ANNOTATION_AUD" not found; SQL statement:
+alter table TaxonRelationship_Annotation_AUD drop constraint FKE86DE57D34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER" not found; SQL statement:
+alter table TaxonRelationship_Marker drop constraint FK69FBDD37777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER" not found; SQL statement:
+alter table TaxonRelationship_Marker drop constraint FK69FBDD372BD180D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TAXONRELATIONSHIP_MARKER_AUD" not found; SQL statement:
+alter table TaxonRelationship_Marker_AUD drop constraint FK21F8978834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY" not found; SQL statement:
+alter table TermVocabulary drop constraint FK487AA6924FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY" not found; SQL statement:
+alter table TermVocabulary drop constraint FK487AA692BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_AUD" not found; SQL statement:
+alter table TermVocabulary_AUD drop constraint FKA6ED3B6334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION" not found; SQL statement:
+alter table TermVocabulary_Annotation drop constraint FK76D2071C1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION" not found; SQL statement:
+alter table TermVocabulary_Annotation drop constraint FK76D2071C258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ANNOTATION_AUD" not found; SQL statement:
+alter table TermVocabulary_Annotation_AUD drop constraint FK222D46ED34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT" not found; SQL statement:
+alter table TermVocabulary_Credit drop constraint FK7604C56632D1B9F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT" not found; SQL statement:
+alter table TermVocabulary_Credit drop constraint FK7604C566258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_CREDIT_AUD" not found; SQL statement:
+alter table TermVocabulary_Credit_AUD drop constraint FKB1E3D03734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION" not found; SQL statement:
+alter table TermVocabulary_Extension drop constraint FKA8814EB2927DE9DF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION" not found; SQL statement:
+alter table TermVocabulary_Extension drop constraint FKA8814EB2258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_EXTENSION_AUD" not found; SQL statement:
+alter table TermVocabulary_Extension_AUD drop constraint FKD522D38334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_IDENTIFIER" not found; SQL statement:
+alter table TermVocabulary_Identifier drop constraint FK730AC896E12073FF [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_IDENTIFIER" not found; SQL statement:
+alter table TermVocabulary_Identifier drop constraint FK730AC896258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_IDENTIFIER_AUD" not found; SQL statement:
+alter table TermVocabulary_Identifier_AUD drop constraint FKE8D4BB6734869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER" not found; SQL statement:
+alter table TermVocabulary_Marker drop constraint FK862BAEA7777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER" not found; SQL statement:
+alter table TermVocabulary_Marker drop constraint FK862BAEA7258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_MARKER_AUD" not found; SQL statement:
+alter table TermVocabulary_Marker_AUD drop constraint FK160230F834869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase drop constraint FK8F2D512A3A6735D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase drop constraint FK8F2D512A258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_ORIGINALSOURCEBASE_AUD" not found; SQL statement:
+alter table TermVocabulary_OriginalSourceBase_AUD drop constraint FKA898D9FB34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION" not found; SQL statement:
+alter table TermVocabulary_Representation drop constraint FKA408B63AB31C4747 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION" not found; SQL statement:
+alter table TermVocabulary_Representation drop constraint FKA408B63A258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_REPRESENTATION_AUD" not found; SQL statement:
+alter table TermVocabulary_Representation_AUD drop constraint FK681B370B34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO" not found; SQL statement:
+alter table TermVocabulary_RightsInfo drop constraint FK81D2B312C13F7B21 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO" not found; SQL statement:
+alter table TermVocabulary_RightsInfo drop constraint FK81D2B312258E060 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TERMVOCABULARY_RIGHTSINFO_AUD" not found; SQL statement:
+alter table TermVocabulary_RightsInfo_AUD drop constraint FK246B07E334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE4FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEBC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEAEB7F3BE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE9E3ED08 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAE4CB0F315 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE" not found; SQL statement:
+alter table TypeDesignationBase drop constraint FK8AC9DCAEFBFA41D9 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_AUD" not found; SQL statement:
+alter table TypeDesignationBase_AUD drop constraint FK243C037F34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION" not found; SQL statement:
+alter table TypeDesignationBase_Annotation drop constraint FK4D7327801E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION" not found; SQL statement:
+alter table TypeDesignationBase_Annotation drop constraint FK4D73278044E9E6D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_ANNOTATION_AUD" not found; SQL statement:
+alter table TypeDesignationBase_Annotation_AUD drop constraint FK88BF955134869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER" not found; SQL statement:
+alter table TypeDesignationBase_Marker drop constraint FKB914A10B777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER" not found; SQL statement:
+alter table TypeDesignationBase_Marker drop constraint FKB914A10B44E9E6D4 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "TYPEDESIGNATIONBASE_MARKER_AUD" not found; SQL statement:
+alter table TypeDesignationBase_Marker_AUD drop constraint FKECA3515C34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT" not found; SQL statement:
+alter table UserAccount drop constraint FKB3F13C24FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT" not found; SQL statement:
+alter table UserAccount drop constraint FKB3F13C2AAC1B820 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_AUD" not found; SQL statement:
+alter table UserAccount_AUD drop constraint FK6A57909334869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table UserAccount_GrantedAuthorityImpl drop constraint FKFD724D851857F6C2 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_GRANTEDAUTHORITYIMPL" not found; SQL statement:
+alter table UserAccount_GrantedAuthorityImpl drop constraint FKFD724D855EA5DD89 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_PERMISSIONGROUP" not found; SQL statement:
+alter table UserAccount_PermissionGroup drop constraint FK812DE753DA9DCB5F [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "USERACCOUNT_PERMISSIONGROUP" not found; SQL statement:
+alter table UserAccount_PermissionGroup drop constraint FK812DE753887E3D12 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B914FF2DB2C [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B91BC5DA539 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET" not found; SQL statement:
+alter table WorkingSet drop constraint FK668D5B9123DB7F04 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_AUD" not found; SQL statement:
+alter table WorkingSet_AUD drop constraint FK628F58E234869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION" not found; SQL statement:
+alter table WorkingSet_Annotation drop constraint FKCBBA8CBD1E403E0B [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION" not found; SQL statement:
+alter table WorkingSet_Annotation drop constraint FKCBBA8CBDBBD2C869 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_ANNOTATION_AUD" not found; SQL statement:
+alter table WorkingSet_Annotation_AUD drop constraint FK1E28140E34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE" not found; SQL statement:
+alter table WorkingSet_DescriptionBase drop constraint FK731CC81F33B8A841 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE" not found; SQL statement:
+alter table WorkingSet_DescriptionBase drop constraint FK731CC81FBBD2C869 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_DESCRIPTIONBASE_AUD" not found; SQL statement:
+alter table WorkingSet_DescriptionBase_AUD drop constraint FK8959CE7034869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER" not found; SQL statement:
+alter table WorkingSet_Marker drop constraint FK9CB22CC8777265A1 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER" not found; SQL statement:
+alter table WorkingSet_Marker drop constraint FK9CB22CC8BBD2C869 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_MARKER_AUD" not found; SQL statement:
+alter table WorkingSet_Marker_AUD drop constraint FK6AEAB69934869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION" not found; SQL statement:
+alter table WorkingSet_Representation drop constraint FKA003835BB31C4747 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION" not found; SQL statement:
+alter table WorkingSet_Representation drop constraint FKA003835BBBD2C869 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_REPRESENTATION_AUD" not found; SQL statement:
+alter table WorkingSet_Representation_AUD drop constraint FK21B88BAC34869AAE [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE" not found; SQL statement:
+alter table WorkingSet_TaxonBase drop constraint FK34EB896D7C3D0017 [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE" not found; SQL statement:
+alter table WorkingSet_TaxonBase drop constraint FK34EB896DB4555A9A [42102-170]
+10-29 15:49:59 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Table "WORKINGSET_TAXONBASE_AUD" not found; SQL statement:
+alter table WorkingSet_TaxonBase_AUD drop constraint FK582B38BE34869AAE [42102-170]
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table AgentBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Amplification add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Annotation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table CdmMetaData add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Classification add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Collection add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Credit add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DefinedTermBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DerivationEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DescriptionBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DescriptionElementBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DeterminationEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table DnaQuality add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table EntityConstraintViolation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table EntityValidationResult add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Extension add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table FeatureNode add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table FeatureTree add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table GatheringEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table GrantedAuthorityImpl add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table HomotypicalGroup add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table HybridRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Identifier add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table InstitutionalMembership add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table KeyStatement add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table LSIDAuthority add constraint _UniqueKey unique (uuid, authority) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table LanguageString add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Marker add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table MaterialOrMethodEvent add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Media add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table MediaRepresentation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table MediaRepresentationPart add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table NameRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table NomenclaturalStatus add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table OriginalSourceBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PermissionGroup add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PolytomousKey add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table PolytomousKeyNode add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Primer add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Reference add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Representation add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:00 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table RightsInfo add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table Sequence add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SingleRead add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SpecimenOrObservationBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table StateData add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table StatisticalMeasurementValue add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table SynonymRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonNameBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonNode add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TaxonRelationship add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TermVocabulary add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table TypeDesignationBase add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table UserAccount add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 15:50:01 jdbc[2]: exception
+org.h2.jdbc.JdbcSQLException: Constraint "_UNIQUEKEY" already exists; SQL statement:
+alter table WorkingSet add constraint _UniqueKey unique (uuid) [90045-170]
+       at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
+       at org.h2.message.DbException.get(DbException.java:169)
+       at org.h2.message.DbException.get(DbException.java:146)
+       at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:89)
+       at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
+       at org.h2.command.CommandContainer.update(CommandContainer.java:75)
+       at org.h2.command.Command.executeUpdate(Command.java:230)
+       at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
+       at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
+       at org.hibernate.tool.hbm2ddl.DatabaseExporter.export(DatabaseExporter.java:64)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.perform(SchemaExport.java:418)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:375)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
+       at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
+       at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:498)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1743)
+       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
+       at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
+       at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
+       at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.createBean(MonitoredListableBeanFactory.java:106)
+       at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
+       at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
+       at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
+       at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
+       at eu.etaxonomy.cdm.api.application.MonitoredListableBeanFactory.preInstantiateSingletons(MonitoredListableBeanFactory.java:70)
+       at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.finishBeanFactoryInitialization(MonitoredGenericApplicationContext.java:74)
+       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
+       at eu.etaxonomy.cdm.api.application.MonitoredGenericApplicationContext.refresh(MonitoredGenericApplicationContext.java:102)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.setNewDataSource(CdmApplicationController.java:248)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.<init>(CdmApplicationController.java:191)
+       at eu.etaxonomy.cdm.api.application.CdmApplicationController.NewInstance(CdmApplicationController.java:141)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.getApplicationController(CdmStoreConnector.java:154)
+       at eu.etaxonomy.taxeditor.store.CdmStoreConnector.run(CdmStoreConnector.java:102)
+       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
+10-29 16:15:11 database: close
+java.lang.ArrayIndexOutOfBoundsException: 2048
+       at org.h2.store.Data.writeValue(Data.java:415)
+       at org.h2.index.PageDataLeaf.writeData(PageDataLeaf.java:528)
+       at org.h2.index.PageDataLeaf.moveTo(PageDataLeaf.java:568)
+       at org.h2.store.PageStore.compact(PageStore.java:724)
+       at org.h2.store.PageStore.compact(PageStore.java:538)
+       at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1316)
+       at org.h2.engine.Database.close(Database.java:1266)
+       at org.h2.engine.DatabaseCloser.run(DatabaseCloser.java:63)
+10-29 16:15:33 database: close
+java.lang.ArrayIndexOutOfBoundsException: 2048
+       at org.h2.store.Data.writeValue(Data.java:415)
+       at org.h2.index.PageDataLeaf.writeData(PageDataLeaf.java:528)
+       at org.h2.index.PageDataLeaf.moveTo(PageDataLeaf.java:568)
+       at org.h2.store.PageStore.compact(PageStore.java:724)
+       at org.h2.store.PageStore.compact(PageStore.java:538)
+       at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1316)
+       at org.h2.engine.Database.close(Database.java:1266)
+       at org.h2.engine.Database.removeSession(Database.java:1137)
+       at org.h2.engine.Session.close(Session.java:676)
+       at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:384)
+       at org.apache.commons.dbcp.DelegatingConnection.close(DelegatingConnection.java:247)
+       at org.apache.commons.dbcp.PoolableConnection.reallyClose(PoolableConnection.java:122)
+       at org.apache.commons.dbcp.PoolableConnectionFactory.destroyObject(PoolableConnectionFactory.java:628)
+       at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1562)
+       at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+       at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+       at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+       at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:203)
+       at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:372)
+       at org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager.doStartTransaction(DefaultUnitilsTransactionManager.java:119)
+       at org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager.startTransaction(DefaultUnitilsTransactionManager.java:99)
+       at org.unitils.database.DatabaseModule.startTransaction(DatabaseModule.java:395)
+       at org.unitils.database.DatabaseModule.startTransactionForTestMethod(DatabaseModule.java:368)
+       at org.unitils.database.DatabaseModule$DatabaseTestListener.beforeTestSetUp(DatabaseModule.java:474)
+       at org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:273)
+       at org.unitils.UnitilsJUnit4TestClassRunner$TestListenerInvokingMethodRoadie.runBeforesThenTestThenAfters(UnitilsJUnit4TestClassRunner.java:181)
+       at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:86)
+       at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
+       at org.unitils.UnitilsJUnit4TestClassRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:95)
+       at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61)
+       at org.unitils.UnitilsJUnit4TestClassRunner.access$000(UnitilsJUnit4TestClassRunner.java:42)
+       at org.unitils.UnitilsJUnit4TestClassRunner$1.run(UnitilsJUnit4TestClassRunner.java:60)
+       at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33)
+       at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45)
+       at org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:67)
+       at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
+       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)
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/log4j.properties b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/log4j.properties
new file mode 100644 (file)
index 0000000..96951aa
--- /dev/null
@@ -0,0 +1,17 @@
+### ************ APPENDER ***********************************###
+
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+
+### ************* LOG LEVELS *********************************###
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+### levels: error, warn, debug, info
+log4j.rootLogger=INFO, stdout
+
+### set directory-specific levels below
+log4j.logger.eu.etaxonomy.taxeditor = INFO
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/unitils.properties b/eu.etaxonomy.taxeditor.cdmlib/src/test/resources/unitils.properties
new file mode 100644 (file)
index 0000000..d722e69
--- /dev/null
@@ -0,0 +1,69 @@
+#\r
+# NOTE: this is the unitils.properties file for the cdmlib-persistence module\r
+# a separate unitils.properties exists for cdmlib-io and for cdmlib-services\r
+#\r
+#\r
+# the list of all properties is found in\r
+# http://unitils.org/unitils-default.properties\r
+#\r
+\r
+### Unitils Modules ###\r
+# List of modules that is loaded. Overloading this list is normally not useful, unless you want to add a custom\r
+# module. Disabling a module can be performed by setting unitils.module.<modulename>.enabled to false.\r
+# If a module's specific dependencies are not found (e.g. hibernate is not in you classpath), this module is not loaded,\r
+# even if it is in this list and the enabled property is set to true. It's therefore not strictly necessary to disable\r
+# any of these modules.\r
+#DEFAULT: unitils.modules=database,dbunit,hibernate,mock,easymock,inject,spring,jpa\r
+unitils.module.easymock.enabled=false\r
+unitils.module.mock.enabled=false\r
+\r
+\r
+### Database ###\r
+#\r
+# Name or path of the user specific properties file. This file should contain the necessary parameters to connect to the\r
+# developer's own unit test schema. It is recommended to override the name of this file in the project specific properties\r
+# file, to include the name of the project. The system will try to find this file in the classpath, the user home folder\r
+# (recommended) or the local filesystem.\r
+#\r
+unitils.configuration.localFileName=unitils-cdmlib-local.properties\r
+\r
+# H2 #\r
+#\r
+database.driverClassName=org.h2.Driver\r
+#database.url=jdbc:h2:file:./src/test/resources/h2/cdmTest;AUTO_SERVER=TRUE\r
+database.url=jdbc:h2:file:./target/test-classes/h2/cdmTest;AUTO_SERVER=TRUE\r
+database.dialect=h2\r
+database.userName=sa\r
+database.password=\r
+database.schemaNames=PUBLIC\r
+org.dbunit.dataset.datatype.IDataTypeFactory.implClassName.h2=org.dbunit.ext.h2.H2DataTypeFactory\r
+org.unitils.core.dbsupport.DbSupport.implClassName.h2=eu.etaxonomy.cdm.database.H2DbSupport\r
+database.storedIndentifierCase.h2=auto\r
+database.identifierQuoteString.h2=auto\r
+\r
+\r
+#### Transaction mode ###\r
+#\r
+# If set to commit or rollback, each test is run in a transaction,\r
+# which is committed or rolled back after the test is finished.\r
+# Since we have many tests with incomplete data these tests would be\r
+# failing during commit so it is better use rollback as default\r
+# and set commit for individual test where necessary\r
+DatabaseModule.Transactional.value.default=rollback\r
+\r
+# org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager is used by default:\r
+#\r
+#   Implements transactions for unit tests, by delegating to a spring PlatformTransactionManager.\r
+#   The concrete implementation of PlatformTransactionManager that is used depends on the test class.\r
+#   If a custom PlatformTransactionManager was configured in a spring ApplicationContext, this one is used.\r
+#   If not, a suitable subclass of PlatformTransactionManager is created, depending on the configuration\r
+#   of a test. E.g. if some ORM persistence unit was configured on the test, a PlatformTransactionManager\r
+#   that can offer transactional behavior for such a persistence unit is used.\r
+#   If no such configuration is found, a DataSourceTransactionManager is used.\r
+#\r
+# org.unitils.database.transaction.UnitilsTransactionManager.implClassName=org.unitils.database.transaction.impl.SpringTransactionManager\r
+\r
+### Hibernate ###\r
+#\r
+HibernateModule.configuration.implClassName=org.hibernate.cfg.Configuration\r
+\r
index 5fc0b2b9a7398afbfecf0dc27e8f399364f39646..839e5e9e3029b157180292132fe1e216b1a955fd 100644 (file)
@@ -17,14 +17,17 @@ import org.eclipse.ui.forms.editor.FormEditor;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -54,6 +57,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
                        monitor.beginTask("Saving Editor", 1);
                        getConversationHolder().bind();
                        getConversationHolder().commit(true);
+                       CdmStore.getService(IPolytomousKeyService.class).merge(((PolytomousKeyEditorInput)getEditorInput()).getKey());
                        setDirty(false);
                        monitor.worked(1);
                } finally {
index 73d84ec90dedf96b50cbcba5d7f81de54e56c36f..7debadbe5f651385094cb514c28934cf3ef1bb08 100644 (file)
@@ -9,19 +9,22 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.editor.key.AbstractIdentificationEditorInput;
+import eu.etaxonomy.taxeditor.session.ISessionEventListener;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
  *
  */
-public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<PolytomousKey> {
+public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<PolytomousKey> implements ISessionEventListener {
 
        private PolytomousKey key;
 
        protected PolytomousKeyEditorInput(ConversationHolder conversation,
                        PolytomousKey key) {
                super(conversation);
+               CdmStore.getCurrentSessionManager().bind(this);
+               CdmStore.getCurrentSessionManager().load(key);
                this.key = key;
        }
        
@@ -30,7 +33,7 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
        public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid) throws Exception{
                try{
                        ConversationHolder conversation = CdmStore.createConversation();
-                                               
+                       
                        return NewInstance(polytomousKeyUuid, conversation);
                }catch(Exception e){
                        throw e;
index ceae45d69d43fd57c6ea825e9928e868b7ac14f8..7fe6bd712618002ae51e42cba0bd463329f460eb 100644 (file)
@@ -47,6 +47,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -301,6 +302,7 @@ public class PolytomousKeyListEditor extends EditorPart implements
         */
        @Override
        public void setFocus() {
+               CdmStore.getCurrentSessionManager().bind((PolytomousKeyEditorInput)getEditorInput());
                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
        }
 
index da13e5e869cc8c62ba2fa8091682835fcd7df862..f509144b805281cc8c5a80eafafe9452b559bc03 100644 (file)
@@ -30,12 +30,13 @@ import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
 import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.cdm.remote.CdmPersistentRemoteSource;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
+
 import eu.etaxonomy.taxeditor.model.MementoHelper;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 public class CdmDataSourceRepository{
index 580bf1f0dc7bb3dfc572d244f70cce2dfeefe7c4..845c252512ff12cb4a585bdc0e27d3ea54f85710 100644 (file)
@@ -28,8 +28,8 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
index f6b224dfcdd64a69149303684001fb1937b22f60..89a898b8a21c71bf80fc27c307a845d471f772d2 100644 (file)
@@ -25,6 +25,9 @@ import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextHolder;
 
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IService;
@@ -36,13 +39,15 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
 import eu.etaxonomy.cdm.persistence.hibernate.permission.Role;
-import eu.etaxonomy.cdm.remote.CdmRemoteSourceException;
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.io.ExportManager;
 import eu.etaxonomy.taxeditor.io.ImportManager;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
+import eu.etaxonomy.taxeditor.session.mock.MockCdmEntitySessionManager;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
 
@@ -86,6 +91,8 @@ public class CdmStore {
        private ICdmSource cdmSource;
 
        private boolean isConnected;
+       
+
 
        /**
         * <p>
@@ -115,7 +122,7 @@ public class CdmStore {
                try {
                        cdmSource = CdmDataSourceRepository.getCurrentCdmSource();
                        connect(cdmSource);
-               } catch (CdmRemoteSourceException e) {
+               } catch (Exception e) {
                        MessagingUtils.messageDialog("Connection to CDM Source Failed", CdmStore.class, "Could not connect to target CDM Source", e);
                }
 
@@ -242,13 +249,37 @@ public class CdmStore {
        public static ConversationHolder createConversation() {
                ConversationHolder conversation = getCurrentApplicationConfiguration()
                                .NewConversation();
-               try{
+               try {
                        conversation.startTransaction();
                }catch(Exception e){
                        MessagingUtils.messageDialog("No database connection", CdmStore.class, "No database connection available", e);
                }
                return conversation;
        }
+       
+       //FIXME:Remoting should be removed after moving completely to remoting
+       private MockCdmEntitySessionManager mockCdmEntitySessionManager;
+       
+       private ICdmEntitySessionManager getSessionManager() {
+               //FIXME:Remoting we should only have CdmApplicationRemoteConfiguration after move to remoting
+               //               bad hack which should be finally removed
+               if(getCurrentApplicationConfiguration() instanceof CdmApplicationRemoteController) {
+                       return ((CdmApplicationRemoteController)getCurrentApplicationConfiguration()).getCdmEntitySessionManager();
+               } else {
+                       if(mockCdmEntitySessionManager == null) {
+                               mockCdmEntitySessionManager = new MockCdmEntitySessionManager();
+                       }
+                       return mockCdmEntitySessionManager;                     
+               }
+       }
+       
+       public static  ICdmEntitySessionManager getCurrentSessionManager() {
+               if (getDefault() != null) {
+                       return getDefault().getSessionManager();
+               }
+               return null;
+
+       }
 
        /**
         * Generic method that will scan the getters of {@link ICdmApplicationConfiguration} for the given service
index 5387e723c860576136694cb0102361381a4a9044..1020242aeada94eca558939d49da668341fa6a89 100644 (file)
@@ -18,23 +18,19 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
-import org.hibernate.collection.internal.AbstractPersistentCollection;
-import org.hibernate.proxy.AbstractLazyInitializer;
 import org.springframework.core.io.Resource;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.remote.ICdmRemoteSource;
 import eu.etaxonomy.cdm.config.CdmSourceException;
-import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
+import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
 import eu.etaxonomy.taxeditor.ui.dialog.LoginDialog;
 import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
 
index 3cfb86048935c2a9a2a3c848a731a168406f37e8..eacf2c694ebdf079ac68a23eaa4e708a2ff7c310 100644 (file)
@@ -11,8 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.association;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
 
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.commands.ExecutionException;
@@ -36,12 +34,6 @@ import org.eclipse.ui.handlers.IHandlerService;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -77,15 +69,7 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
         associationsViewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
         associationsViewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         associationsViewer.setContentProvider(new ArrayContentProvider());
-        Collection<IndividualsAssociation> individualsAssociations = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociations(entity.innerDerivedUnit(), null, null, null, null);
-        //TODO implement service method for this which is just used in the label provider
-        Collection<TaxonBase<?>> associatedTaxa = new HashSet<TaxonBase<?>>();
-        for (IndividualsAssociation individualsAssociation : individualsAssociations) {
-            if(individualsAssociation.getInDescription().isInstanceOf(TaxonDescription.class)){
-                TaxonDescription taxonDescription = HibernateProxyHelper.deproxy(individualsAssociation.getInDescription(), TaxonDescription.class);
-                associatedTaxa.add(taxonDescription.getTaxon());
-            }
-        }
+        Collection<TaxonBase<?>> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listAssociatedTaxa(entity.innerDerivedUnit(), null, null, null, null);
         associationsViewer.setInput(associatedTaxa);
         associationsViewer.addDoubleClickListener(this);
 
@@ -95,19 +79,7 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
         typeDesignationViewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
         typeDesignationViewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         typeDesignationViewer.setContentProvider(new ArrayContentProvider());
-        Collection<SpecimenTypeDesignation> typeDesignations = CdmStore.getService(IOccurrenceService.class).listTypeDesignations(entity.innerDerivedUnit(), null, null, null, null);
-        //TODO implement service method for this which is just used in the label provider
-        Collection<TaxonBase<?>> typedTaxa = new HashSet<TaxonBase<?>>();
-        for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignations) {
-            for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
-                Set taxa = taxonNameBase.getTaxa();
-                for (Object taxon : taxa) {
-                    if(taxon instanceof CdmBase && ((CdmBase)taxon).isInstanceOf(TaxonBase.class)){
-                        typedTaxa.add(HibernateProxyHelper.deproxy(taxon, TaxonBase.class));
-                    }
-                }
-            }
-        }
+        Collection<TaxonBase<?>> typedTaxa = CdmStore.getService(IOccurrenceService.class).listTypedTaxa(entity.innerDerivedUnit(), null, null, null, null);
         typeDesignationViewer.setInput(typedTaxa);
         typeDesignationViewer.addDoubleClickListener(this);
     }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml b/eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml
deleted file mode 100644 (file)
index b402e67..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-  xmlns:context="http://www.springframework.org/schema/context"\r
-  xmlns:tx="http://www.springframework.org/schema/tx"\r
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
-\r
-  <!-- Local application context and term initializer -->\r
-  <import resource="classpath:/eu/etaxonomy/cdm/localApplicationContext.xml"/>\r
-  \r
-  <!-- Remote application context and term initializer -->\r
-  <!--  <import resource="classpath:/eu/etaxonomy/cdm/remotingApplicationContext.xml"/> -->\r
-  \r
-</beans>\r