See http://hudson.opengeo.org/hudson/job/geoserver-trunk/902/changes
Changes:
[jdeolive] GEOS-2798, adding a listener to catalog for purging cache on modification events
[jdeolive] GEOS-2796, ensuring no spaces when maps are encoded
------------------------------------------
[...truncated 408 lines...]
Results :
Tests run: 23, Failures: 0, Errors: 0, Skipped: 0
[INFO] [jar:jar]
[INFO] Building jar: http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/ows/target/ows-2.0-SNAPSHOT.jar
[INFO] [jar:test-jar {execution: default}]
[INFO] Building jar: http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/ows/target/ows-2.0-SNAPSHOT-tests.jar
[INFO] Preparing source:jar
[WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.
[INFO] No goals needed for project - skipping
[INFO] [source:jar {execution: attach-sources}]
[INFO] Building jar: http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/ows/target/ows-2.0-SNAPSHOT-sources.jar
[INFO] [install:install]
[INFO] Installing http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/ows/target/ows-2.0-SNAPSHOT.jar to /home/tomcat/.m2/repository/org/geoserver/ows/2.0-SNAPSHOT/ows-2.0-SNAPSHOT.jar
[INFO] Installing http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/ows/target/ows-2.0-SNAPSHOT-tests.jar to /home/tomcat/.m2/repository/org/geoserver/ows/2.0-SNAPSHOT/ows-2.0-SNAPSHOT-tests.jar
[INFO] Installing http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/ows/target/ows-2.0-SNAPSHOT-sources.jar to /home/tomcat/.m2/repository/org/geoserver/ows/2.0-SNAPSHOT/ows-2.0-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Building Main Module
[INFO] task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] Deleting directory http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/main/target
[INFO] [cobertura:clean {execution: default}]
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] snapshot org.geotools:gt-cql:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-validation:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-data:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-jdbc:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-property:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:plugin:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-epsg-hsql:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-arcgrid:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-geotiff:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-gtopo30:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] snapshot org.geotools:gt-image:2.6-SNAPSHOT: checking for updates from opengeo
[INFO] [compiler:compile]
[INFO] Compiling 216 source files to http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/main/target/classes
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] snapshot org.geoserver:ows:2.0-SNAPSHOT: checking for updates from opengeo
[INFO] [compiler:testCompile]
[INFO] Compiling 40 source files to http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/main/target/test-classes
[INFO] [surefire:test]
[INFO] Surefire report directory: http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/main/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.geoserver.security.decorators.ReadOnlyDataAccessTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.604 sec
Running org.geoserver.catalog.impl.InfoObjectProxyTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec
Running org.geoserver.config.GeoServerPersisterTest
Tests run: 24, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: 7.713 sec <<< FAILURE!
Running org.geoserver.template.GeoServerTemplateLoaderTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.281 sec
Running org.geoserver.feature.ReprojectingFilterVisitorTest
Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.253 sec
Running org.geoserver.vfny.global.TolerantStartupTest
log4j:WARN File option not set for appender [geoserverlogfile].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?
log4j:ERROR No output stream or file set for the appender named [geoserverlogfile].
31 Mar 11:23:32 INFO [test.GeoServerTestApplicationContext] - Refreshing org.geoserver.test.GeoServerTestApplicationContext@anonymised.com: display name [org.geoserver.test.GeoServerTestApplicationContext@anonymised.com]; startup date [Tue Mar 31 11:23:32 EDT 2009]; root of context hierarchy
31 Mar 11:23:32 INFO [test.GeoServerTestApplicationContext] - Bean factory for application context [org.geoserver.test.GeoServerTestApplicationContext@anonymised.com]: org.springframework.beans.factory.support.DefaultListableBeanFactory@anonymised.com
31 Mar 11:23:32 INFO [test.GeoServerTestApplicationContext] - Bean 'resourceLoader' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
31 Mar 11:23:32 ERROR [geoserver.global] -
----------------------------------
- GEOSERVER_DATA_DIR: http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/main/./target/mock15032data
----------------------------------
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded namespace 'gs' (http://geoserver.org)
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded namespace 'cite' (http://www.opengis.net/cite)
31 Mar 11:23:32 INFO [geoserver.catalog] - Default namespace: 'gs'
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded style 'Default'
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded style 'Buildings'
31 Mar 11:23:32 INFO [geoserver.catalog] - Processed data store 'cite', enabled
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded feature type 'cite:BasicPolygons'
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded feature type 'cite:Buildings'
31 Mar 11:23:32 INFO [test.GeoServerTestApplicationContext] - Closing org.geoserver.test.GeoServerTestApplicationContext@anonymised.com: display name [org.geoserver.test.GeoServerTestApplicationContext@anonymised.com]; startup date [Tue Mar 31 11:23:32 EDT 2009]; root of context hierarchy
31 Mar 11:23:32 INFO [geoserver.catalog] - Disposing datastore 'cite'
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.075 sec
Running org.geoserver.catalog.impl.util.LegacyCatalogImporterTest
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded namespace 'gs' (http://geoserver.org)
31 Mar 11:23:32 INFO [geoserver.catalog] - Default namespace: 'gs'
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded style 'Default'
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded namespace 'gs' (http://geoserver.org)
31 Mar 11:23:32 INFO [geoserver.catalog] - Default namespace: 'gs'
31 Mar 11:23:32 INFO [geoserver.catalog] - Loaded style 'Default'
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec
Running org.geoserver.config.LegacyConfigurationImporterTest
Mar 31, 2009 11:23:32 AM org.geoserver.platform.GeoServerExtensions checkContext
SEVERE: Extension lookup occured, but ApplicationContext is unset.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec
Running org.geoserver.config.util.XStreamPersisterTest
31 Mar 11:23:32 INFO [org.geoserver] - Loaded store 'bar', disabled
31 Mar 11:23:32 INFO [org.geoserver] - Loaded store 'bar', disabled
31 Mar 11:23:32 INFO [org.geoserver] - Loading workspace 'foo'
31 Mar 11:23:32 INFO [org.geoserver] - Loading namespace 'acme'
31 Mar 11:23:32 INFO [org.geoserver] - Loaded store 'foo', disabled
31 Mar 11:23:32 INFO [org.geoserver] - Loaded store 'bar', disabled
Mar 31, 2009 11:23:34 AM java.util.prefs.FileSystemPreferences$7 run
WARNING: Prefs file removed in background /home/tomcat/.java/.userPrefs/org/geotools/referencing/wkt/prefs.xml
31 Mar 11:23:34 INFO [org.geoserver] - Loaded feature type 'ft', disabled
Tests run: 12, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.81 sec <<< FAILURE!
Running org.vfny.geoserver.global.xml.WriterHelperTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.49 sec
Running org.geoserver.template.FeatureWrapperTest
Mar 31, 2009 11:23:34 AM org.geoserver.platform.GeoServerExtensions checkContext
SEVERE: Extension lookup occured, but ApplicationContext is unset.
Mar 31, 2009 11:23:34 AM org.geoserver.platform.GeoServerExtensions checkContext
SEVERE: Extension lookup occured, but ApplicationContext is unset.
Mar 31, 2009 11:23:34 AM org.geoserver.platform.GeoServerExtensions checkContext
SEVERE: Extension lookup occured, but ApplicationContext is unset.
Mar 31, 2009 11:23:34 AM org.geoserver.platform.GeoServerExtensions checkContext
SEVERE: Extension lookup occured, but ApplicationContext is unset.
Mar 31, 2009 11:23:34 AM org.geoserver.platform.GeoServerExtensions checkContext
SEVERE: Extension lookup occured, but ApplicationContext is unset.
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.194 sec
Running org.geoserver.security.DefaultDataAccessManagerAuthTest
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=* is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=* is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=READER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.bases.w=MILITARY
31 Mar 11:23:35 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.states.w=WRITER
31 Mar 11:23:35 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.bases.r=MILITARY
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=NO_ONE is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.landmarks.w=WRITER
31 Mar 11:23:35 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.states.r=READER
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Invalid security mode foobar acceptable values are [HIDE, CHALLENGE, MIXED]
Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.5 sec
Running org.geoserver.config.GeoServerImplTest
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec
Running org.geoserver.security.decorators.ReadOnlyDataStoreTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 sec
Running org.geoserver.logging.LegacyLoggingImporterTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.145 sec
Running org.geoserver.security.decorators.ReadOnlyFeatureSourceTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.029 sec
Running org.geoserver.feature.retype.RetypingDataStoreTest
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.241 sec
Running org.geoserver.security.SecureCatalogImplTest
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=* is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=* is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:35 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:36 WARN [geoserver.securit] - Rule *.*.r=READER is overriding another rule targetting the same resource
31 Mar 11:23:36 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.bases.w=MILITARY
31 Mar 11:23:36 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.states.w=WRITER
31 Mar 11:23:36 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.bases.r=MILITARY
31 Mar 11:23:36 WARN [geoserver.securit] - Rule *.*.w=NO_ONE is overriding another rule targetting the same resource
31 Mar 11:23:36 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.landmarks.w=WRITER
31 Mar 11:23:36 WARN [geoserver.securit] - Layer topp is unknown in rule + topp.states.r=READER
31 Mar 11:23:36 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:36 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:36 WARN [geoserver.securit] - Rule *.*.r=WRITER is overriding another rule targetting the same resource
31 Mar 11:23:36 WARN [geoserver.securit] - Rule *.*.w=WRITER is overriding another rule targetting the same resource
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.197 sec
Running org.vfny.geoserver.crs.OvverideCRSTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.177 sec
Running org.geoserver.feature.retype.FullyRetypingDataStoreTest
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.064 sec
Running org.geoserver.catalog.SchemaMappingTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.348 sec
Running org.geoserver.security.decorators.ReadOnlyDecoratorsTest
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 sec
Running org.geoserver.catalog.ResourcePoolTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.109 sec
Running org.geoserver.security.SecureTreeNodeTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running org.geoserver.catalog.impl.CatalogBuilderTest
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.RetypingDataStoreTest.testLockUnlockFilter Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.FullyRetypingDataStoreTest.testLockUnlockQuery Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.FullyRetypingDataStoreTest.testLockUnlockQuery Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.FullyRetypingDataStoreTest.testLockUnlockFilter Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.FullyRetypingDataStoreTest.testLockUnlockFilter Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.RetypingDataStoreTest.testLockUnlockQuery Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.RetypingDataStoreTest.testLockUnlockQuery Transaction'
31 Mar 11:23:38 ERROR [geotools.data] - There's code leaving transaction unclosed. Call Transaction.close() after using them to ensure they do not hold state such as JDCB connections or file handles
31 Mar 11:23:38 ERROR [geotools.data] - Unclosed transaction handle is 'org.geoserver.feature.retype.RetypingDataStoreTest.testLockUnlockFilter Transaction'
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.684 sec
Running org.geoserver.security.DefaultDataAccessManagerTreeTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec
Running org.geoserver.security.SecureCatalogIntegrationTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.37 sec
Running org.geoserver.catalog.impl.CatalogImplTest
Tests run: 41, Failures: 0, Errors: 9, Skipped: 0, Time elapsed: 0.488 sec <<< FAILURE!
Running org.geoserver.security.decorators.ReadOnlyFeatureCollectionTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.021 sec
Results :
Tests in error:
testModifyDataStore(org.geoserver.config.GeoServerPersisterTest)
testRemoveDataStore(org.geoserver.config.GeoServerPersisterTest)
testModifyFeatureType(org.geoserver.config.GeoServerPersisterTest)
testRemoveFeatureType(org.geoserver.config.GeoServerPersisterTest)
testModifyCoverageStore(org.geoserver.config.GeoServerPersisterTest)
testRemoveCoverageStore(org.geoserver.config.GeoServerPersisterTest)
testModifyStyle(org.geoserver.config.GeoServerPersisterTest)
testRemoveStyle(org.geoserver.config.GeoServerPersisterTest)
testCatalog(org.geoserver.config.util.XStreamPersisterTest)
testModifyDataStore(org.geoserver.catalog.impl.CatalogImplTest)
testRemoveDataStore(org.geoserver.catalog.impl.CatalogImplTest)
testModifyFeatureType(org.geoserver.catalog.impl.CatalogImplTest)
testRemoveFeatureType(org.geoserver.catalog.impl.CatalogImplTest)
testModifyStyle(org.geoserver.catalog.impl.CatalogImplTest)
testRemoveStyle(org.geoserver.catalog.impl.CatalogImplTest)
testDataStoreEvents(org.geoserver.catalog.impl.CatalogImplTest)
testFeatureTypeEvents(org.geoserver.catalog.impl.CatalogImplTest)
testStyleEvents(org.geoserver.catalog.impl.CatalogImplTest)
Tests run: 174, Failures: 0, Errors: 18, Skipped: 0
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
Please refer to http://hudson.opengeo.org/hudson/job/geoserver-trunk/ws/geoserver/main/target/surefire-reports for the individual test results.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 6 seconds
[INFO] Finished at: Tue Mar 31 11:23:39 EDT 2009
[INFO] Final Memory: 31M/63M
[INFO] ------------------------------------------------------------------------