Git Product home page Git Product logo

geoserver-exts's Introduction

geoserver-exts

Building

geoserver-exts currently depends on a recent version of geoserver master. You can build that first, or have the geoserver-exts build pull down the latest geoserver snapshot.

git clone [email protected]:boundlessgeo/geoserver-exts.git
cd geoserver-exts
mvn install

Adding a new extension

  1. In the parent geoserver-exts pom, add a new module to the list.

  2. In the extension's pom, add a parent section to point to the parent pom.

     <parent>
       <groupId>org.opengeo</groupId>
       <artifactId>geoserver-exts</artifactId>
       <version>2.7-SNAPSHOT</version>
     </parent>
     

geoserver-exts's People

Contributors

bmmpxf avatar cdelpinogeo avatar cuttlefish avatar dwins avatar groldan avatar ischneider avatar jdeolive avatar jmarin avatar jodygarnett avatar mweisman avatar rmarianski avatar ryleysill93 avatar smithkm avatar tbarsballe avatar tkunicki avatar travislbrundage avatar ustroetz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoserver-exts's Issues

Rename importer-gdb to importer-fgdb

"fgdb" is typically the short hand used. And even though the files use the ".gdb" extension i believe just "gdb" is also ambiguous with the previous incarnation at the esri "personal geo database". Better to use "fgdb", it also matches our packaging, and the name of the ogr driver.

GSR support for quantitative and categorical class breaks

SLD (the OGC styling standard used for symbology in GeoServer) supports categorical and quantitative class breaks, so we would like those mapped into GSR.

PDC tried to set this up with quantitative SLD by creating the earthquakes renderer in QGIS, but it does not appear to work in GSR. However, one of the TD4 layers has a hand-generated SLD (by LMN) using categorical classes, and it displays in DisasterAWARE.

GSR doesn't support LineString while it does support MultiLineString

Layer with MultiLineString works as expected but LineString does not.

The layer osm_tegu_roads throws this error:
java.lang.IllegalStateException: Geometry encoding not yet supported for LineString
at org.opengeo.gsr.core.geometry.GeometryEncoder.toJson(GeometryEncoder.java:123)
at org.opengeo.gsr.core.feature.FeatureEncoder.featureToJson(FeatureEncoder.java:90)
at org.opengeo.gsr.core.feature.FeatureEncoder.featuresToJson(FeatureEncoder.java:76)

ObjectId support in Query responses

ObjectId "support" actually encompasses two changes:

  • Include a field of type 'objectId' in reported schemas and features, populated with values from the featureId.
  • Support the returnIdsOnly option which changes the result format entirely

Maven Build Error

I think in file FGDBFileFormat of fgdb module
line number should be like this

Line 80 : File file = fileData.getFile().file(); -> File file = fileData.getFile();
Line 100 : File file = fileData.getFile().file(); -> File file = fileData.getFile();

Infinite Loop in Cluster Module in Event mode

Nodes in event mode can't distinguish between the events they generate and new events, causing them to reflect any event notifications they receive back into the cluster, causing an infinite loop.

What is a schema_store file (mongodb ext)

I am trying to create a data source in geoserver that points to my mongodb instance.

However "schema_store" is a required parameter. I cannot find any documentation on what information needs to be provided in that file.

Decompose bbox filters into hemispheres

Since mongo intersect queries can't handle geometries bigger than a hemisphere we should decompose the bbox filter and return a composite feature reader and aggregates all the results.

Importer SRS policy not set

This issue shows up after using File GDB import, the resulting layer does not have the layer SRS policy set (example "force" or "native") and thus cannot be rendered.

Manual Workaround:

  1. Edit in layer editor, watch it fail with an exception
  2. Edit it a second time

Solution:

  • @ischneider has a patched gs-importer-core that will enforce a default setting. This is provided as a jar that can be dropped in as a replacement.

Alternative:

  • The layer is constructed by hand in opengeo-importer-gdb and this value can be configured at this time.

cannot install geoserver-exts

I am able to clone the repository onto my computer, but when I run 'mvn install', only the first build is successful. Everything after that is unsuccessful. I only want to install the mongodb plug-in right now.

Here is the output from the command line:

C:\Users\Tirzah\geoserver-exts>mvn install -pl mongodb -am
Picked up _JAVA_OPTIONS: -Xmx512M
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for
org.opengeo:gt-ysld:jar:13-SNAPSHOT
[WARNING] 'version' contains an expression but should be a constant. @ org.openg
eo:gt-ysld:${gt.version}, C:\Users\Tirzah\geoserver-exts\ysld\gt-ysld\pom.xml, l
ine 16, column 12
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten t
he stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support buildin
g such malformed projects.
[WARNING]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] OpenGeo GeoServer Extensions
[INFO] MongoDB DataStore
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenGeo GeoServer Extensions 2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- git-commit-id-plugin:2.1.8:revision (default) @ geoserver-exts ---
[INFO]
[INFO] >>> maven-source-plugin:2.2.1:jar (attach-sources) > generate-sources @ g
eoserver-exts >>>
[INFO]
[INFO] --- git-commit-id-plugin:2.1.8:revision (default) @ geoserver-exts ---
[INFO]
[INFO] <<< maven-source-plugin:2.2.1:jar (attach-sources) < generate-sources @ g
eoserver-exts <<<
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ geoserver-exts ---
[INFO]
[INFO] --- maven-dependency-plugin:2.8:copy-dependencies (default) @ geoserver-e
xts ---
[INFO]

[INFO] --- maven-install-plugin:2.4:install (default-install) @ geoserver-exts -

[INFO] Installing C:\Users\Tirzah\geoserver-exts\pom.xml to C:\Users\Tirzah.m2
repository\org\opengeo\geoserver-exts\2.7-SNAPSHOT\geoserver-exts-2.7-SNAPSHOT.p
om
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MongoDB DataStore 2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- git-commit-id-plugin:2.1.8:revision (default) @ gt-mongodb ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] OpenGeo GeoServer Extensions ....................... SUCCESS [ 14.293 s]
[INFO] MongoDB DataStore .................................. FAILURE [ 1.251 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.432 s
[INFO] Finished at: 2015-06-18T10:20:15-04:00
[INFO] Final Memory: 21M/310M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal pl.project13.maven:git-commit-id-plugin:2.1.8:rev
ision (default) on project gt-mongodb: Execution default of goal pl.project13.ma
ven:git-commit-id-plugin:2.1.8:revision failed. NullPointerException -> [Help 1]

[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutio
nException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command

[ERROR] mvn -rf :gt-mongodb

C:\Users\Tirzah\geoserver-exts>

Importer rest API Create import ContentType: application/json does not support charset

Hi, I am using the importer plugins rest API to add new geodata to geoserver.

According to The documentation:
When I create a new import using a POST on URL geoserver/rest/imports/ with a content-Type like

Content-Type : application/json

I specify my import workspace like so

{"import":{
    "targetWorkspace":{"workspace":{"name":"my_work_space"}}
    }
}

and the return the confirmation of the workspace like so

{
"import": {
...
    "targetWorkspace": {
      "workspace": {
        "name": "my_work_space"
      }
    },
}
}

I found a bug when using the Java apache HTTPClient and setting Content type to the preDefined ContentType.APPLICATION_JSON which set the content type to "application/json; charset=UTF-8". When I use the predefined contentType, I get no targetWorkspace confirmation and the import use the default workspace.

I did not look at the code, but I am suspecting a code that look specificaly for "application/json" since even adding ";" like application/json; does not work.

I also suspect other function to fail supporting charset.

here is the rfc for Content-type
https://www.w3.org/Protocols/rfc1341/4_Content-Type.html
https://www.w3.org/International/articles/http-charset/

Importer extension

Hi All,
How to specify store name and layer name when importing new file? Currently it names same as filename?
Or is there to overwrite store and layer if such name already exists?

thanks,

Alex.

Importer GDB does not support LineString3D

The OGR DataStore used by importer-gdb does not have a binding for LineString3D. As a result the SDK sample data Domains.gdb cannot be used at this time.

Alternatives:

  • Short-term: document this as a limitation
  • Mid-term: skip over these layers to see if anything else can be used
  • Long-term: See if we can get away with loading the additional measurements as a 2.5 D (basically ignore the CRS as a constraint during import)

gsr does not implement some routes properly

Including, but not limited to:

.../MapServer/<layerid>/layers
.../MapServer/<layerid>/legend

For the above, it returns the full listing which most likely would break a client

GSR should ignore layers that fail

GeoServer supports geometry collections (multiple geometry types in one layer) but the ESRI specification does not. GSR should ignore these layers instead of throwing an error.

mongodb: errors with nested arrays of objects

Using GeoServer 2.7.1 Stable
Using gt-mongodb extension, 2.7-SNAPSHOT built from master (e173782)

The mongodb extension fails when a collection has either an index that references the property of an object in a nested array, or when accessing documents with a key path pointing to values of objects in an array nested in the documents.

For example, an index on the key path attachments.lastModified, where attachments is a document key that references an array of objects, which in turn have a key lastModified that references a scalar value, will cause the errors in steps 6 and 8 below. Additionally, in the absence of such an index, simply a document with that same structure will cause the error in step 11. Here is a concrete example of the symptomatic document structure:

{
    "_id": ObjectID("5568eaa245c6b6d1432ea532"),
    "attachments": [
        {
            "lastModified": ISODate("2015-01-01T00:00:00Z")
        }
    ]
}

Reproducing the errors

  1. Login to GeoServer as the admin user.

  2. Click the Layers link in the navigation pane.

  3. Click the Add a new resource link.

  4. Choose the Store for your MongoDB database. This assumes you have defined a MongoDB Store already.

  5. Choose a collection that has nested array keys and click its Publish link.

  6. In the Bounding Boxes section, click either of compute from data/compute from native bounds. The app shows the following error on a web page and in the server log.

    java.lang.IllegalArgumentException: BasicBSONList can only work with numeric keys, not: [lastModified]
        at org.bson.types.BasicBSONList._getInt(BasicBSONList.java:161)
        at org.bson.types.BasicBSONList._getInt(BasicBSONList.java:152)
        at org.bson.types.BasicBSONList.get(BasicBSONList.java:104)
        at org.geotools.data.mongodb.MongoUtil.getDBOValueInternal(MongoUtil.java:37)
        at org.geotools.data.mongodb.MongoUtil.getDBOValueInternal(MongoUtil.java:38)
        at org.geotools.data.mongodb.MongoUtil.getDBOValue(MongoUtil.java:30)
        at org.geotools.data.mongodb.MongoUtil.getDBOValue(MongoUtil.java:26)
        at org.geotools.data.mongodb.AbstractCollectionMapper.buildFeature(AbstractCollectionMapper.java:33)
        at org.geotools.data.mongodb.MongoFeatureReader.next(MongoFeatureReader.java:39)
        at org.geotools.data.mongodb.MongoFeatureReader.next(MongoFeatureReader.java:13)
        at org.geotools.data.mongodb.MongoFeatureSource.getBoundsInternal(MongoFeatureSource.java:77)
        at org.geotools.data.mongodb.MongoFeatureStore.getBoundsInternal(MongoFeatureStore.java:48)
        at org.geotools.data.store.ContentFeatureSource.getBounds(ContentFeatureSource.java:428)
        at org.geotools.data.store.ContentFeatureSource.getBounds(ContentFeatureSource.java:364)
        at org.vfny.geoserver.global.GeoServerFeatureSource.getBounds(GeoServerFeatureSource.java:660)
        at org.geoserver.catalog.CatalogBuilder.getNativeBounds(CatalogBuilder.java:562)
        at org.geoserver.catalog.CatalogBuilder.getNativeBounds(CatalogBuilder.java:544)
        at org.geoserver.web.data.resource.BasicResourceConfig$1.onSubmit(BasicResourceConfig.java:120)
        at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)
        at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)
        at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)
        at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300)
        at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119)
        at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
        at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)
        at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
        at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
        at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:116)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
    
  7. Input valid bounding box information.

  8. Save the layer. The app shows the following error on a web page and in the server log. The app should still save the layer, however.

    org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = resource]] threw an exception
        at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:193)
        at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
        at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
        at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)
        at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
        at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
        at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:116)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
    Caused by: java.lang.reflect.InvocationTargetException
        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.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
        ... 92 more
    Caused by: java.lang.IllegalArgumentException: Parameter message can't be null
        at org.apache.wicket.feedback.FeedbackMessage.<init>(FeedbackMessage.java:102)
        at org.apache.wicket.feedback.FeedbackMessages.error(FeedbackMessages.java:135)
        at org.apache.wicket.Component.error(Component.java:1309)
        at org.geoserver.web.data.resource.ResourceConfigurationPage.doSave(ResourceConfigurationPage.java:334)
        at org.geoserver.web.data.resource.ResourceConfigurationPage$6.onSubmit(ResourceConfigurationPage.java:258)
        at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1561)
        at org.apache.wicket.markup.html.form.Form.process(Form.java:958)
        at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:920)
        ... 97 more
    
  9. Click the Layer Preview link in the navigation pane.

  10. Click the OpenLayers link on the MongoDB layer you created.

  11. Click on a feature on the map. The browser should download a file called wms, and the following error appears in the log. The wms file should also contain the message text of the exception.

    02 Jun 10:11:04 INFO [geoserver.wms] -
    Request: getServiceInfo
    02 Jun 10:11:04 ERROR [geotools.rendering] - BasicBSONList can only work with numeric keys, not: [lastModified]
    java.lang.IllegalArgumentException: BasicBSONList can only work with numeric keys, not: [lastModified]
        at org.bson.types.BasicBSONList._getInt(BasicBSONList.java:161)
        at org.bson.types.BasicBSONList._getInt(BasicBSONList.java:152)
        at org.bson.types.BasicBSONList.get(BasicBSONList.java:104)
        at org.geotools.data.mongodb.MongoUtil.getDBOValueInternal(MongoUtil.java:37)
        at org.geotools.data.mongodb.MongoUtil.getDBOValueInternal(MongoUtil.java:38)
        at org.geotools.data.mongodb.MongoUtil.getDBOValue(MongoUtil.java:30)
        at org.geotools.data.mongodb.MongoUtil.getDBOValue(MongoUtil.java:26)
        at org.geotools.data.mongodb.AbstractCollectionMapper.buildFeature(AbstractCollectionMapper.java:33)
        at org.geotools.data.mongodb.MongoFeatureReader.next(MongoFeatureReader.java:39)
        at org.geotools.data.mongodb.MongoFeatureReader.next(MongoFeatureReader.java:13)
        at org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.next(ContentFeatureCollection.java:144)
        at org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.next(ContentFeatureCollection.java:124)
        at org.geoserver.feature.RetypingFeatureCollection$RetypingIterator.next(RetypingFeatureCollection.java:108)
        at org.geoserver.feature.RetypingFeatureCollection$RetypingIterator.next(RetypingFeatureCollection.java:93)
        at org.geotools.feature.collection.BridgeIterator.next(BridgeIterator.java:31)
        at org.geotools.feature.collection.BridgeIterator.next(BridgeIterator.java:18)
        at org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2408)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2113)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:832)
        at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:515)
        at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:258)
        at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:130)
        at org.geoserver.wms.featureinfo.VectorRenderingLayerIdentifier.identify(VectorRenderingLayerIdentifier.java:203)
        at org.geoserver.wms.GetFeatureInfo.execute(GetFeatureInfo.java:78)
        at org.geoserver.wms.GetFeatureInfo.run(GetFeatureInfo.java:44)
        at org.geoserver.wms.DefaultWebMapService.getFeatureInfo(DefaultWebMapService.java:387)
        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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at org.geoserver.kml.WebMapServiceKmlInterceptor.invoke(WebMapServiceKmlInterceptor.java:34)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:55)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at com.sun.proxy.$Proxy66.getFeatureInfo(Unknown Source)
        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.geoserver.ows.Dispatcher.execute(Dispatcher.java:839)
        at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:280)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
        at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
        at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
    

Make GeoGig's home directory configurable

Repositories managed by GeoServer wither miss their original $HOME/.geogigconfig, or won't be able to create it at tomcat's home (or any other OS user's home the app server is run with).

Make it so the home directory defaults to GEOSERVER_DATA_DIR and prominently configurable in the GeoServer UI alerting that that's the one to be used by all repos and hence care must be taken that the repos don't rely on settings in the home directory of the user that originally created them.

Importer GDB results in No data to import

Encountered testing opengeo-importer-gdb with a simple locations.gdb consisting of points.

CentOS

  • CentOS - resolved:

The following two steps allowed locations.gdb/gdb to be successfully imported.

  1. Be sure to check file permissions of tomcat:tomcat. Without permission we get a generic "No data to import" message.
  2. Be sure to open locations.gdb/gdb (opening locations.gdb will use the directory datastore, attempting to process each file contained in the directory)

Windows

  • Windows 2008 Server - OPEN

This issue is unresolved - sanity check steps for testing:

  1. Check permissions: should be SYSTEM as Tomcat runs as SYSTEM.
  2. Double check appropriate permissions by looking at GEOSERVER_DATA_DIRECTORY (located at C:\ProgramData\Boundless\OpenGeo\geoserver)
  3. Check path to gdb file: C:\ProgramData\Boundless\OpenGeo\geoserver\data\locations.gdb\gdb

GSR support for stacked symbols

Currently we can do symbology in GeoServer based off of multiple conditionals. For example:Type=Incident and Priority=High to render a single symbol (png). Before, we tried to have a png for the incident type with a circle symbol for the priority. SLD supports this and so does OL, but GSR doesn't.

Can't build with maven 3

Currently, the geoserver-exts build can only be run with maven 2, but we need it to build with maven 3 to support the migration of the geogit geoserver plugin from the geogit codebase to geoserver-exts.

The actual error we get with the maven3 build is well known: java-json-tools/json-schema-validator#39 and should be solvable with a json-schema-validator dependency upgrade.

importer should check for existing style

Before executing Importer.addToCatalog, a check should be made for an existing style and a new one computed if one exists. This usually won't happen but could as the 'unique' style is computed early in the process. If the import process is halted and another is begun, they will both have the same style name as the intermediate state is not persisted to the catalog.

GeoJSON import

Ability to import a GeoJSON file into a existing store.

Investigate WMS/WFS 'branching' for GeoGit Repos

Right now, if a user wants to create a branch in a GeoGit data store, they'll need to create the branch, add a new data store that points to the new branch, then publish all the layers again under that branch. It would be great if there was a way to parameterize WMS to render map tiles from different branches, and WFS to commit features to different branches without having to create a bunch of duplicate data stores and layers.

GeoGit clone is case insensitive

You can clone a repo irrespective of the case provided to the GeoGit plugin. However, you can't push back unless the case is correct.

Clustering Event mode does not remove cached data

When the Cluster module is in event mode old data is being retained after notification of an update.

With two nodes sharing a JDBCConfig catalog, update a catalog entry (title of a feature type for instance) then check on the other node, after waiting for the sync delay set in cluster.properties and the title will not have updated. It will update eventually, on the order of minutes.

The ResourcePool which is doing the caching is being notified and is apparently cleaning up its cache in response. There must be additional caching going on somewhere.

Problem with CQL filter

Hi!
After adding a collection of jsonArray data to my mongodb database I wanted to filter it with CQL, but it doesn't seem to work.
My query goes like this : user.name like '%username%'
When I apply this filter all my points disappair...
The only CQL filter that seems to work is when I try an int value on a root property:
id_str = 123

Versions I am using:
mongodb: 3.0.2
geoserver: 2.7.0
geoserver-exts: 2.7-SNAPSHOT

Are there any known issues around this? Any help will be much appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.