Interessting and Sure, going to have a look at. Wondering because I
refactored to preserve ordering, tests in GeoTools are fine.

2015-11-02 21:17 GMT+01:00 Andrea Aime <[email protected]>:

> Hi Jody and Frank,
> it looks like the changes to MemoryDataStore are breaking tests in
> GeoServer:
>
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.652 sec
> <<< FAILURE!
> testEscapes(org.geoserver.wfs.response.CSVOutputFormatTest)  Time elapsed:
> 501 sec  <<< FAILURE!
> org.junit.ComparisonFailure: expected:<A l[abel with "quotes"]> but was:<A
> l[ong label
> with windows
> newlines]>
> at org.junit.Assert.assertEquals(Assert.java:115)
> at org.junit.Assert.assertEquals(Assert.java:144)
> at
> org.geoserver.wfs.response.CSVOutputFormatTest.testEscapes(CSVOutputFormatTest.java:118)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
> at
> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
> at
> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
> at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
>
> The test in question is indeed using a MemoryDataStore. I checked which
> other parts of GeoServer tests
> might be affected, came up with the following list (only including what's
> in supported land):
>
> > find . -name "*.java" | xargs grep MemoryDataStore
> ./wms/src/test/java/org/geoserver/wms/svg/SVGMapProducerTest.java:import
> org.geotools.data.memory.MemoryDataStore;
> ./wms/src/test/java/org/geoserver/wms/svg/SVGMapProducerTest.java:
>  MemoryDataStore ds = new MemoryDataStore();
> ./wms/src/test/java/org/geoserver/wms/WMSMockData.java:import
> org.geotools.data.memory.MemoryDataStore;
> ./wms/src/test/java/org/geoserver/wms/WMSMockData.java:    private
> MemoryDataStore dataStore;
> ./wms/src/test/java/org/geoserver/wms/WMSMockData.java:        dataStore =
> new MemoryDataStore();
> ./wms/src/test/java/org/geoserver/wms/WMSMockData.java:
>  dataStore.setNamespaceURI("http://geoserver.org";); // required for
> GeoTools 12 implemetnation of MemoryDataStore
> ./wms/src/test/java/org/geoserver/wms/WMSMockData.java:     * Creates a
> vector layer with associated FeatureType in the internal MemoryDataStore
> with the
> ./wms/src/main/java/org/geoserver/wms/map/GetMapXmlReader.java:import
> org.geotools.data.memory.MemoryDataStore;
> ./wms/src/main/java/org/geoserver/wms/map/GetMapXmlReader.java:
>  MemoryDataStore reTypedDS = new MemoryDataStore(reader);
> ./wms/src/main/java/org/geoserver/wms/map/GetMapKvpRequestReader.java:import
> org.geotools.data.memory.MemoryDataStore;
> ./wms/src/main/java/org/geoserver/wms/map/GetMapKvpRequestReader.java:
>        MemoryDataStore reTypedDS = new MemoryDataStore(new
> ForceCoordinateSystemFeatureReader(
> ./web/demo/src/main/java/org/geoserver/web/crs/CRSAreaOfValidityMapBuilder.java:import
> org.geotools.data.memory.MemoryDataStore;
> ./web/demo/src/main/java/org/geoserver/web/crs/CRSAreaOfValidityMapBuilder.java:
>        MemoryDataStore ds = new MemoryDataStore();
> ./wfs/src/test/java/org/geoserver/wfs/response/CSVOutputFormatTest.java:import
> org.geotools.data.memory.MemoryDataStore;
> ./wfs/src/test/java/org/geoserver/wfs/response/CSVOutputFormatTest.java:
>      MemoryDataStore data = new MemoryDataStore();
>
> Could you have a look?
>
> Cheers
> Andrea
>
>
> On Sat, Oct 31, 2015 at 1:26 PM, Frank Gasdorf <
> [email protected]> wrote:
>
>> Hello folks,
>>
>> I updated the initial pull request. Additional to the internal
>> ConcurrentSkipListMap usage I synched the access to internal HashMaps (memory
>> & schema objects) to avoid issues with concurrent access (createSchema,
>> removeSchema (see pull https://github.com/geotools/geotools/pull/1022)
>> and addFeatures and features() methodes)
>>
>> Do you have any comments or requests for change on the outstanding pull
>> request https://github.com/geotools/geotools/pull/1002
>>
>> Hope anybody of you can have a look at while I start working on the pull
>> to backport it into 14.x
>>
>> Thanks a lot
>>
>> - Frank
>>
>>
>> 2015-09-13 9:09 GMT+02:00 Andrea Aime <[email protected]>:
>>
>>> On Thu, Sep 10, 2015 at 11:13 PM, Jody Garnett <[email protected]>
>>> wrote:
>>>
>>>> Since its not an "Ordered" DataStore that should preserve order I'd
>>>>> suggest to remove these tests. Opinions?
>>>>>
>>>>
>>>> If you change the functionality, change the test to match. There should
>>>> now be several feature collection implementations to choose from so code
>>>> that requires a TreeSet based functionality has a migration path.
>>>>
>>>> I'm wondering how you would think about this "proposal". However,
>>>>> STRtree internal creates a new List every type the Index is requested. I
>>>>> haven't investigated thread savety of STRtree yet. Maybe anybody of you 
>>>>> has
>>>>> much more experiance than me to give feedback on that
>>>>>
>>>>
>>>> The index needs to get rebuilt each time a feature is modified, so
>>>> other than that overhead (which could be pushed off until "commit" ) it
>>>> should be workable.  The List should not be a problem, as it offers you a
>>>> bit of independence (at the cost of possibly traversing through out of date
>>>> information).
>>>>
>>>>
>>> One coud use a quadtree index instead, it can be modified without
>>> rebuilding it, but it's more prone to degeration to linked list,
>>> the STRTree is packed and optimized for balancing, but as you say, it's
>>> a pain if stuff gets modified.
>>> I don't think any of the JTS indexes is thread safe.
>>>
>>> Cheers
>>> Andrea
>>>
>>> --
>>> ==
>>> GeoServer Professional Services from the experts! Visit
>>> http://goo.gl/it488V for more information.
>>> ==
>>>
>>> Ing. Andrea Aime
>>> @geowolf
>>> Technical Lead
>>>
>>> GeoSolutions S.A.S.
>>> Via Poggio alle Viti 1187
>>> 55054  Massarosa (LU)
>>> Italy
>>> phone: +39 0584 962313
>>> fax: +39 0584 1660272
>>> mob: +39  339 8844549
>>>
>>> http://www.geo-solutions.it
>>> http://twitter.com/geosolutions_it
>>>
>>> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>>>
>>> Le informazioni contenute in questo messaggio di posta elettronica e/o
>>> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
>>> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
>>> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
>>> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
>>> darcene notizia via e-mail e di procedere alla distruzione del messaggio
>>> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
>>> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
>>> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
>>> principi dettati dal D.Lgs. 196/2003.
>>>
>>>
>>>
>>> The information in this message and/or attachments, is intended solely
>>> for the attention and use of the named addressee(s) and may be confidential
>>> or proprietary in nature or covered by the provisions of privacy act
>>> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
>>> Code).Any use not in accord with its purpose, any disclosure, reproduction,
>>> copying, distribution, or either dissemination, either whole or partial, is
>>> strictly forbidden except previous formal approval of the named
>>> addressee(s). If you are not the intended recipient, please contact
>>> immediately the sender by telephone, fax or e-mail and delete the
>>> information in this message that has been received in error. The sender
>>> does not give any warranty or accept liability as the content, accuracy or
>>> completeness of sent messages and accepts no responsibility  for changes
>>> made after they were sent or for other risks which arise as a result of
>>> e-mail transmission, viruses, etc.
>>>
>>> -------------------------------------------------------
>>>
>>
>>
>> _______________________________________________
>> udig-dev mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://locationtech.org/mailman/listinfo/udig-dev
>>
>
>
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054  Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
> mob: +39  339 8844549
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>
> Le informazioni contenute in questo messaggio di posta elettronica e/o
> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
> darcene notizia via e-mail e di procedere alla distruzione del messaggio
> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
> principi dettati dal D.Lgs. 196/2003.
>
>
>
> The information in this message and/or attachments, is intended solely for
> the attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
> Code).Any use not in accord with its purpose, any disclosure, reproduction,
> copying, distribution, or either dissemination, either whole or partial, is
> strictly forbidden except previous formal approval of the named
> addressee(s). If you are not the intended recipient, please contact
> immediately the sender by telephone, fax or e-mail and delete the
> information in this message that has been received in error. The sender
> does not give any warranty or accept liability as the content, accuracy or
> completeness of sent messages and accepts no responsibility  for changes
> made after they were sent or for other risks which arise as a result of
> e-mail transmission, viruses, etc.
>
> -------------------------------------------------------
>
------------------------------------------------------------------------------
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to