[Geoserver-users] Google Earth network Link

Hi,
I've been fighting this one all day and am fairly sure it's a bug now,
though I don't know if it's in Google Earth or GeoServer.

I have a MySQL datastore which I am using to serve up vector data
using the geometry types. For the purposes of testing I am trying to
serve one polygon (four vertices). Because I'm new to spatial geometry
in a DB I nabbed an example from the internet and it worked fine. But
after fiddling around with some things and using my own data, I
discovered my data wouldn't appear in Google Earth when it was being
sent with a Network Link (works as an image overlay though). Yet the
original data would. After much tinkering I've got it down to the
problem being somehow in the co-ordinates themselves.

This is the original SQL query which I nabbed off the internet:

insert into geoserver_test (the_geom, fid, description) values
(GeomFromText('POLYGON((
    153.01598489285 -27.47432304082,
    153.01693975925 -27.473799504861,
    153.01699340343 -27.473918490525,
    153.01602780819 -27.47438967249,
    153.01598489285 -27.47432304082
))'),1,'37 Merivale St, South Brisbane 4101, Queensland, Australia')

This is my modified one:

insert into geoserver_test (the_geom, fid, description) values
(GeomFromText('POLYGON((
    -4.310576005553553 52.957605911543752,
    -4.317493454951753 52.955528839528505,
    -4.318744039241856 52.956916228638029,
    -4.313922992914573 52.958655814284420,
    -4.310576005553553 52.957605911543752
))'),1,'37 Merivale St, South Brisbane 4101, Queensland, Australia')

As you can see, they're identical except for the co-ordinates (the
first is in Australia, the second, Wales, UK) - I did re-generate the
bounding boxes. Both render fine using the OpenLayers, SVG and PDF on
the demo page, and when I insert them as an Image Overlay in Google
Earth they work there too, but for some reason when I use them as a
KML or KML_reflect WMS'd NetworkLink to Google Earth, only the first
(Australia) one works.
Having an SRID in there doesn't make any difference, and I tried
changing the co-ords to a couple of others I have. Nor would it show
the original 900 rows in the DB I originally had down as the dataset.

GeoServer: 1.7.5 with mysql extension;
Google Earth 4.3.7284.3916 (beta) - also 5.0.11733.9347 (just upgraded
to the latest version).

As noted, I don't know if it's Google Earth or Geoserver. because the
data sent in the network link is gibberish, so I just decided to ask
here first and the GE forums second. Any guesses?

If someone wants to try to recreate it, the create-table sql is:
CREATE TABLE `geoserver_test` (
  `the_geom` geometry NOT NULL,
  `fid` varchar(255) NOT NULL,
  `description` varchar(2000) default NULL,
  PRIMARY KEY (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Thanks,
Jonathan

Hi Jonathan,

I followed the steps you laid out to try and reproduce, but i could not. I was able to view the data in google earth:

http://skitch.com/jdeolive/bwct9/google-earth

Do you see any error messages in the geoserver log? It could be something is misconfigured that is leading to an error of some sort. Do you get an error in google earth? Or just nothing appears.

Also, can you include the exact url you are using the network link.

Thanks,

-Justin

Jonathan Moules wrote:

Hi,
I've been fighting this one all day and am fairly sure it's a bug now,
though I don't know if it's in Google Earth or GeoServer.

I have a MySQL datastore which I am using to serve up vector data
using the geometry types. For the purposes of testing I am trying to
serve one polygon (four vertices). Because I'm new to spatial geometry
in a DB I nabbed an example from the internet and it worked fine. But
after fiddling around with some things and using my own data, I
discovered my data wouldn't appear in Google Earth when it was being
sent with a Network Link (works as an image overlay though). Yet the
original data would. After much tinkering I've got it down to the
problem being somehow in the co-ordinates themselves.

This is the original SQL query which I nabbed off the internet:

insert into geoserver_test (the_geom, fid, description) values
(GeomFromText('POLYGON((
    153.01598489285 -27.47432304082,
    153.01693975925 -27.473799504861,
    153.01699340343 -27.473918490525,
    153.01602780819 -27.47438967249,
    153.01598489285 -27.47432304082
))'),1,'37 Merivale St, South Brisbane 4101, Queensland, Australia')

This is my modified one:

insert into geoserver_test (the_geom, fid, description) values
(GeomFromText('POLYGON((
    -4.310576005553553 52.957605911543752,
    -4.317493454951753 52.955528839528505,
    -4.318744039241856 52.956916228638029,
    -4.313922992914573 52.958655814284420,
    -4.310576005553553 52.957605911543752
))'),1,'37 Merivale St, South Brisbane 4101, Queensland, Australia')

As you can see, they're identical except for the co-ordinates (the
first is in Australia, the second, Wales, UK) - I did re-generate the
bounding boxes. Both render fine using the OpenLayers, SVG and PDF on
the demo page, and when I insert them as an Image Overlay in Google
Earth they work there too, but for some reason when I use them as a
KML or KML_reflect WMS'd NetworkLink to Google Earth, only the first
(Australia) one works.
Having an SRID in there doesn't make any difference, and I tried
changing the co-ords to a couple of others I have. Nor would it show
the original 900 rows in the DB I originally had down as the dataset.

GeoServer: 1.7.5 with mysql extension;
Google Earth 4.3.7284.3916 (beta) - also 5.0.11733.9347 (just upgraded
to the latest version).

As noted, I don't know if it's Google Earth or Geoserver. because the
data sent in the network link is gibberish, so I just decided to ask
here first and the GE forums second. Any guesses?

If someone wants to try to recreate it, the create-table sql is:
CREATE TABLE `geoserver_test` (
  `the_geom` geometry NOT NULL,
  `fid` varchar(255) NOT NULL,
  `description` varchar(2000) default NULL,
  PRIMARY KEY (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Thanks,
Jonathan

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Hi Jonathan,

If you could keep replies on the public mailing list, that would be much appreciated. Reply all is your friend :slight_smile:

That said:

Jonathan Moules wrote:

Hi Justin,
Thanks for looking into this. I can only conclude I'm going crazy
then. It's a new day so I figured I'd try again and maybe it'd
magically work (I can but hope :wink: ). But nope, it's still broken and
absolutely refusing to show that Welsh polygon for me.

Error log - I'm not sure where to look for these. If it's in
date_request_log - then I can say that of the 5000+ lines from
yesterday's in there, not a single one includes the world "error".
There's no errors showing in the geoserver console either, when I
refresh the network link in GE all I get is:
"class org.vfny.geoserver.global.geoserverFeatureLocking"

Depends on how you are running geoserver. But you should see a geoserver.log file, in the location you are using as the GEOSERVER_DATA_DIR. How are you running goeserver? Via the war or standalone jetty?

but that happens whether for all refreshes, be they shown or not.
There are no errors in google earth (I did turn on the KML error
reporting - nothing). It just doesn't do a single thing.

I tried loading the same data from a shapefile (the originating
shapefile that it came from with the full 900 features), and it worked
fine from there.

Netowrk link url:
http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test
or
http://localhost:8080/geoserver/wms/kml_reflect?layers=j2:geoserver_test
Neither of them shows a little red "I can't find this" dot, so GE is
finding them

The link in the layer below the network link in GE is:
http://localhost:8080/geoserver/wms?height=256&bbox=-4.39453125%2C52.91015625%2C-4.306640625%2C52.998046875&width=256&layers=j2%3Ageoserver_test&request=GetMap&service=wms&styles=polygon&format_options=SUPEROVERLAY%3Atrue%3BKMPLACEMARK%3Afalse%3BOVERLAYMODE%3Aauto%3BKMSCORE%3A50%3BKMATTR%3Atrue%3B&srs=EPSG%3A4326&format=application%2Fvnd.google-earth.kmz%2Bxml&transparent=false&version=1.1.1

Hmmm... it looks right to me. Hopefully the error log will shed some light.

Completely stumped by this one, though it's not currently critical to
me, it's still niggling (KML overlays look much nicer than image
overlays in GE). One difference I note is that you appear to be using
GE on the mac - maybe it's a windows GE only thing (I'm reaching for
straws here :slight_smile: ).

Thanks for your time. If you have any other questions feel free to ask.

Jonathan

2009/6/16 Justin Deoliveira <jdeolive@anonymised.com>:

Hi Jonathan,

I followed the steps you laid out to try and reproduce, but i could not. I
was able to view the data in google earth:

http://skitch.com/jdeolive/bwct9/google-earth

Do you see any error messages in the geoserver log? It could be something is
misconfigured that is leading to an error of some sort. Do you get an error
in google earth? Or just nothing appears.

Also, can you include the exact url you are using the network link.

Thanks,

-Justin

Jonathan Moules wrote:

Hi,
I've been fighting this one all day and am fairly sure it's a bug now,
though I don't know if it's in Google Earth or GeoServer.

I have a MySQL datastore which I am using to serve up vector data
using the geometry types. For the purposes of testing I am trying to
serve one polygon (four vertices). Because I'm new to spatial geometry
in a DB I nabbed an example from the internet and it worked fine. But
after fiddling around with some things and using my own data, I
discovered my data wouldn't appear in Google Earth when it was being
sent with a Network Link (works as an image overlay though). Yet the
original data would. After much tinkering I've got it down to the
problem being somehow in the co-ordinates themselves.

This is the original SQL query which I nabbed off the internet:

insert into geoserver_test (the_geom, fid, description) values
(GeomFromText('POLYGON((
               153.01598489285 -27.47432304082,
               153.01693975925 -27.473799504861,
               153.01699340343 -27.473918490525,
               153.01602780819 -27.47438967249,
               153.01598489285 -27.47432304082
))'),1,'37 Merivale St, South Brisbane 4101, Queensland, Australia')

This is my modified one:

insert into geoserver_test (the_geom, fid, description) values
(GeomFromText('POLYGON((
               -4.310576005553553 52.957605911543752,
               -4.317493454951753 52.955528839528505,
               -4.318744039241856 52.956916228638029,
               -4.313922992914573 52.958655814284420,
               -4.310576005553553 52.957605911543752
))'),1,'37 Merivale St, South Brisbane 4101, Queensland, Australia')

As you can see, they're identical except for the co-ordinates (the
first is in Australia, the second, Wales, UK) - I did re-generate the
bounding boxes. Both render fine using the OpenLayers, SVG and PDF on
the demo page, and when I insert them as an Image Overlay in Google
Earth they work there too, but for some reason when I use them as a
KML or KML_reflect WMS'd NetworkLink to Google Earth, only the first
(Australia) one works.
Having an SRID in there doesn't make any difference, and I tried
changing the co-ords to a couple of others I have. Nor would it show
the original 900 rows in the DB I originally had down as the dataset.

GeoServer: 1.7.5 with mysql extension;
Google Earth 4.3.7284.3916 (beta) - also 5.0.11733.9347 (just upgraded
to the latest version).

As noted, I don't know if it's Google Earth or Geoserver. because the
data sent in the network link is gibberish, so I just decided to ask
here first and the GE forums second. Any guesses?

If someone wants to try to recreate it, the create-table sql is:
CREATE TABLE `geoserver_test` (
       `the_geom` geometry NOT NULL,
       `fid` varchar(255) NOT NULL,
       `description` varchar(2000) default NULL,
       PRIMARY KEY (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Thanks,
Jonathan

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Hi Justin,
Wasn't aware of what the procedure was for this mailing list, but I'm
on-list again now. :slight_smile:

Depends on how you are running geoserver. But you should see a geoserver.log
file, in the location you are using as the GEOSERVER_DATA_DIR. How are you
running goeserver? Via the war or standalone jetty?

Err, I'm just running it? As in, I run startup.bat and it works, the
intricacies and variabilities in the different types of java apps have
never done anything but confuse me so I can't be any more clear than
that. I use the self-contained version - "geoserver-1.7.5-bin.zip" on
sourceforge.

I found my log-file - it's not with the rest of the logs in the "logs"
directory but in data_dir/logs - kind of counter-intuitive (I'm just
using the defaults).
Anyway, these logs are more exciting, I'm seeing a few:
"java.lang.RuntimeException: Error getting FeatureType, this should
never happen!"
which is probably not too auspicious. :wink:

When I "refresh" the broken not-visible-as-KML polygon (using KML
reflect) The following entries are made in the log:

2009-06-18 17:34:28,295 WARN [geoserver.kml] - Failure while checking
whether a regionated child tile contained features!
java.lang.NullPointerException
  at org.vfny.geoserver.wms.responses.map.kml.BestGuessRegionatingStrategy.getFilter(BestGuessRegionatingStrategy.java:38)
  at org.vfny.geoserver.wms.responses.map.kml.KMLUtils.loadFeatureCollection(KMLUtils.java:492)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.featuresInTile(KMLSuperOverlayTransformer.java:261)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.shouldDrawVectorLayer(KMLSuperOverlayTransformer.java:161)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.encodeTileForViewing(KMLSuperOverlayTransformer.java:138)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.encode(KMLSuperOverlayTransformer.java:126)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encodeSuperOverlayLayer(KMLTransformer.java:243)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encode(KMLTransformer.java:128)
  at org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:714)
  at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
  at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:296)
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:129)
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:108)
  at org.vfny.geoserver.wms.responses.map.kml.KMZMapProducer.writeTo(KMZMapProducer.java:149)
  at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:625)
  at org.geoserver.ows.adapters.ResponseAdapter.write(ResponseAdapter.java:60)
  at org.geoserver.ows.Dispatcher.response(Dispatcher.java:712)
  at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:216)
  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:875)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
  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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
  at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
  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)
2009-06-18 17:34:28,295 ERROR [geotools.rendering] -
java.lang.NullPointerException
  at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1672)
  at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:661)
  at org.geotools.renderer.shape.ShapefileRenderer.renderWithStreamingRenderer(ShapefileRenderer.java:1492)
  at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:1346)
  at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:267)
  at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:405)
  at org.vfny.geoserver.wms.responses.map.kml.KMZMapProducer.writeTo(KMZMapProducer.java:176)
  at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:625)
  at org.geoserver.ows.adapters.ResponseAdapter.write(ResponseAdapter.java:60)
  at org.geoserver.ows.Dispatcher.response(Dispatcher.java:712)
  at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:216)
  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:875)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
  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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
  at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
  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)

Yet when I removed it and re-added it after re-creating the feature in
GS, absolutely no errors appeared for either KML or KML reflect in the
log (still no polygon in KML though). Didn't seem to get any errors
for non KML-reflect, but I'd take that with salt, GS seems to be being
random with its reporting.

Note - I can confirm this bug occurs for me in the Google Earth Plugin too.

Hope that helps,
Jonathan

2009/6/17 Justin Deoliveira <jdeolive@anonymised.com>:

Hi Jonathan,

If you could keep replies on the public mailing list, that would be much
appreciated. Reply all is your friend :slight_smile:

That said:

Jonathan Moules wrote:

Hi Justin,
Thanks for looking into this. I can only conclude I'm going crazy
then. It's a new day so I figured I'd try again and maybe it'd
magically work (I can but hope :wink: ). But nope, it's still broken and
absolutely refusing to show that Welsh polygon for me.

Error log - I'm not sure where to look for these. If it's in
date_request_log - then I can say that of the 5000+ lines from
yesterday's in there, not a single one includes the world "error".
There's no errors showing in the geoserver console either, when I
refresh the network link in GE all I get is:
"class org.vfny.geoserver.global.geoserverFeatureLocking"

Depends on how you are running geoserver. But you should see a geoserver.log
file, in the location you are using as the GEOSERVER_DATA_DIR. How are you
running goeserver? Via the war or standalone jetty?

but that happens whether for all refreshes, be they shown or not.
There are no errors in google earth (I did turn on the KML error
reporting - nothing). It just doesn't do a single thing.

I tried loading the same data from a shapefile (the originating
shapefile that it came from with the full 900 features), and it worked
fine from there.

Netowrk link url:
http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test
or
http://localhost:8080/geoserver/wms/kml_reflect?layers=j2:geoserver_test
Neither of them shows a little red "I can't find this" dot, so GE is
finding them

The link in the layer below the network link in GE is:

http://localhost:8080/geoserver/wms?height=256&bbox=-4.39453125%2C52.91015625%2C-4.306640625%2C52.998046875&width=256&layers=j2%3Ageoserver_test&request=GetMap&service=wms&styles=polygon&format_options=SUPEROVERLAY%3Atrue%3BKMPLACEMARK%3Afalse%3BOVERLAYMODE%3Aauto%3BKMSCORE%3A50%3BKMATTR%3Atrue%3B&srs=EPSG%3A4326&format=application%2Fvnd.google-earth.kmz%2Bxml&transparent=false&version=1.1.1

Hmmm... it looks right to me. Hopefully the error log will shed some light.

Completely stumped by this one, though it's not currently critical to
me, it's still niggling (KML overlays look much nicer than image
overlays in GE). One difference I note is that you appear to be using
GE on the mac - maybe it's a windows GE only thing (I'm reaching for
straws here :slight_smile: ).

Thanks for your time. If you have any other questions feel free to ask.

Jonathan

Jonathan Moules wrote:

Hi Justin,
Wasn't aware of what the procedure was for this mailing list, but I'm
on-list again now. :slight_smile:

Depends on how you are running geoserver. But you should see a geoserver.log
file, in the location you are using as the GEOSERVER_DATA_DIR. How are you
running goeserver? Via the war or standalone jetty?

Err, I'm just running it? As in, I run startup.bat and it works, the
intricacies and variabilities in the different types of java apps have
never done anything but confuse me so I can't be any more clear than
that. I use the self-contained version - "geoserver-1.7.5-bin.zip" on
sourceforge.

That gives me enough, you are on windows running the standalone embedded jetty version :).

I found my log-file - it's not with the rest of the logs in the "logs"
directory but in data_dir/logs - kind of counter-intuitive (I'm just
using the defaults).

Yeah, the logs folder is for the container and the data_dir/logs is for geoserver, i agree, a bit confusing.

Anyway, these logs are more exciting, I'm seeing a few:
"java.lang.RuntimeException: Error getting FeatureType, this should
never happen!"
which is probably not too auspicious. :wink:

When I "refresh" the broken not-visible-as-KML polygon (using KML
reflect) The following entries are made in the log:

2009-06-18 17:34:28,295 WARN [geoserver.kml] - Failure while checking
whether a regionated child tile contained features!
java.lang.NullPointerException
  at org.vfny.geoserver.wms.responses.map.kml.BestGuessRegionatingStrategy.getFilter(BestGuessRegionatingStrategy.java:38)
  at org.vfny.geoserver.wms.responses.map.kml.KMLUtils.loadFeatureCollection(KMLUtils.java:492)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.featuresInTile(KMLSuperOverlayTransformer.java:261)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.shouldDrawVectorLayer(KMLSuperOverlayTransformer.java:161)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.encodeTileForViewing(KMLSuperOverlayTransformer.java:138)
  at org.vfny.geoserver.wms.responses.map.kml.KMLSuperOverlayTransformer$KMLSuperOverlayerTranslator.encode(KMLSuperOverlayTransformer.java:126)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encodeSuperOverlayLayer(KMLTransformer.java:243)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encode(KMLTransformer.java:128)
  at org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:714)
  at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
  at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:296)
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:129)
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:108)
  at org.vfny.geoserver.wms.responses.map.kml.KMZMapProducer.writeTo(KMZMapProducer.java:149)
  at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:625)
  at org.geoserver.ows.adapters.ResponseAdapter.write(ResponseAdapter.java:60)
  at org.geoserver.ows.Dispatcher.response(Dispatcher.java:712)
  at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:216)
  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:875)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
  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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
  at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
  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)
2009-06-18 17:34:28,295 ERROR [geotools.rendering] -
java.lang.NullPointerException
  at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1672)
  at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:661)
  at org.geotools.renderer.shape.ShapefileRenderer.renderWithStreamingRenderer(ShapefileRenderer.java:1492)
  at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:1346)
  at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:267)
  at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:405)
  at org.vfny.geoserver.wms.responses.map.kml.KMZMapProducer.writeTo(KMZMapProducer.java:176)
  at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:625)
  at org.geoserver.ows.adapters.ResponseAdapter.write(ResponseAdapter.java:60)
  at org.geoserver.ows.Dispatcher.response(Dispatcher.java:712)
  at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:216)
  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:875)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
  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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
  at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
  at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
  at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
  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)

Yet when I removed it and re-added it after re-creating the feature in
GS, absolutely no errors appeared for either KML or KML reflect in the
log (still no polygon in KML though). Didn't seem to get any errors
for non KML-reflect, but I'd take that with salt, GS seems to be being
random with its reporting.

Note - I can confirm this bug occurs for me in the Google Earth Plugin too.

GeoServer can produce KML in one of 3 modes. It looks like a problem with the superoverlay mode which is the default. Can you try the following URL to access the KML:

http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test&mode=refresh

And let us know if it works.

Thanks,

-Justin

Hope that helps,
Jonathan

2009/6/17 Justin Deoliveira <jdeolive@anonymised.com>:

Hi Jonathan,

If you could keep replies on the public mailing list, that would be much
appreciated. Reply all is your friend :slight_smile:

That said:

Jonathan Moules wrote:

Hi Justin,
Thanks for looking into this. I can only conclude I'm going crazy
then. It's a new day so I figured I'd try again and maybe it'd
magically work (I can but hope :wink: ). But nope, it's still broken and
absolutely refusing to show that Welsh polygon for me.

Error log - I'm not sure where to look for these. If it's in
date_request_log - then I can say that of the 5000+ lines from
yesterday's in there, not a single one includes the world "error".
There's no errors showing in the geoserver console either, when I
refresh the network link in GE all I get is:
"class org.vfny.geoserver.global.geoserverFeatureLocking"

Depends on how you are running geoserver. But you should see a geoserver.log
file, in the location you are using as the GEOSERVER_DATA_DIR. How are you
running goeserver? Via the war or standalone jetty?

but that happens whether for all refreshes, be they shown or not.
There are no errors in google earth (I did turn on the KML error
reporting - nothing). It just doesn't do a single thing.

I tried loading the same data from a shapefile (the originating
shapefile that it came from with the full 900 features), and it worked
fine from there.

Netowrk link url:
http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test
or
http://localhost:8080/geoserver/wms/kml_reflect?layers=j2:geoserver_test
Neither of them shows a little red "I can't find this" dot, so GE is
finding them

The link in the layer below the network link in GE is:

http://localhost:8080/geoserver/wms?height=256&bbox=-4.39453125%2C52.91015625%2C-4.306640625%2C52.998046875&width=256&layers=j2%3Ageoserver_test&request=GetMap&service=wms&styles=polygon&format_options=SUPEROVERLAY%3Atrue%3BKMPLACEMARK%3Afalse%3BOVERLAYMODE%3Aauto%3BKMSCORE%3A50%3BKMATTR%3Atrue%3B&srs=EPSG%3A4326&format=application%2Fvnd.google-earth.kmz%2Bxml&transparent=false&version=1.1.1

Hmmm... it looks right to me. Hopefully the error log will shed some light.

Completely stumped by this one, though it's not currently critical to
me, it's still niggling (KML overlays look much nicer than image
overlays in GE). One difference I note is that you appear to be using
GE on the mac - maybe it's a windows GE only thing (I'm reaching for
straws here :slight_smile: ).

Thanks for your time. If you have any other questions feel free to ask.

Jonathan

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Hi Justin,
This is very strange, I was going to run your link to test it, but first thought I’d better confirm it’s still broken (I like to be thorough and I’m used to bugs magically fixing themselves :wink: ). Sure enough, the full dataset (900 polygons) is working properly using the regular KML url:
http://localhost:8080/geoserver/wms/kml?layers=j2:woodland_geometry
as well as kml_reflect and your “&mode=refresh”. They all work.
(Remember initially it wasn’t working which is why I had to scale down to a single polygon to track the problem).

So I go back to the single polygon in Wales, fortunately (for this debugging) it’s still broken in both KML and KML_reflect. However, using your &mode=refresh, it DOES work. So whatever your theory is it looks to be heading in the right direction. I can just use &mode=refresh now I guess - this isn’t going into production so the performance loss (it loaded woodland_geometry slower anyway) is acceptable.

Many thanks Justin. If you need me to test anything else for this, just ask.

Jonathan

2009/6/22 Justin Deoliveira jdeolive@anonymised.com

That gives me enough, you are on windows running the standalone embedded jetty version :).

Yeah, the logs folder is for the container and the data_dir/logs is for geoserver, i agree, a bit confusing.

GeoServer can produce KML in one of 3 modes. It looks like a problem with the superoverlay mode which is the default. Can you try the following URL to access the KML:

http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test&mode=refresh

And let us know if it works.

Thanks,

-Justin

Hi Jonathan,

Jonathan Moules wrote:

Hi Justin,
This is very strange, I was going to run your link to test it, but first thought I'd better confirm it's still broken (I like to be thorough and I'm used to bugs magically fixing themselves :wink: ). Sure enough, the full dataset (900 polygons) is working properly using the regular KML url:
http://localhost:8080/geoserver/wms/kml?layers=j2:woodland_geometry
as well as kml_reflect and your "&mode=refresh". They all work.
(Remember initially it wasn't working which is why I had to scale down to a single polygon to track the problem).

Ha, classic case of bringing your care to the mechanic...

So I go back to the single polygon in Wales, fortunately (for this debugging) it's still broken in both KML and KML_reflect. However, using your &mode=refresh, it DOES work. So whatever your theory is it looks to be heading in the right direction. I can just use &mode=refresh now I guess - this isn't going into production so the performance loss (it loaded woodland_geometry slower anyway) is acceptable.

Yeah... unfortunately super overlays were prematurely made the default mode of the reflector, and are still buggy.

Many thanks Justin. If you need me to test anything else for this, just ask.

I guess if you can nail down the exact steps you used to reproduce, that would help, and we can fix the bug. However looking at where the code failed in the log, that line could probably be a bit more tolerable and fail more gracefully, or not fail at all.

Jonathan

2009/6/22 Justin Deoliveira jdeolive@anonymised.com <mailto:jdeolive@anonymised.com>

    That gives me enough, you are on windows running the standalone
    embedded jetty version :).
     
         Yeah, the logs folder is for the container and the data_dir/logs is
    for geoserver, i agree, a bit confusing.

        GeoServer can produce KML in one of 3 modes. It looks like a
        problem with the superoverlay mode which is the default. Can you
        try the following URL to access the KML:

        http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test&mode=refresh
        <http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test&mode=refresh&gt;

        And let us know if it works.

        Thanks,

        -Justin

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Hi Justin,
I’ve just been playing with it futher and more strangeness. Those 900 polygons that work fine in Google Earth? They don’t work in Google Earth Plugin (which is actually where I intend for them to be displayed, hence my testing there), so I’m forced to use the mode=refresh on that (which does work there too).

Further testing shows that nothing is appearing in the log no matter what method I try in which application. I restarted the server just in case and now the 900 polygons don’t show in GE either. I think this would be an instance of lots of trips to the mechanic with the car. ;-/

Jonathan

2009/6/22 Justin Deoliveira <jdeolive@anonymised.com>

Hi Jonathan,

Jonathan Moules wrote:

Hi Justin,
This is very strange, I was going to run your link to test it, but first thought I’d better confirm it’s still broken (I like to be thorough and I’m used to bugs magically fixing themselves :wink: ). Sure enough, the full dataset (900 polygons) is working properly using the regular KML url:
http://localhost:8080/geoserver/wms/kml?layers=j2:woodland_geometry
as well as kml_reflect and your “&mode=refresh”. They all work.
(Remember initially it wasn’t working which is why I had to scale down to a single polygon to track the problem).

Ha, classic case of bringing your care to the mechanic…

So I go back to the single polygon in Wales, fortunately (for this debugging) it’s still broken in both KML and KML_reflect. However, using your &mode=refresh, it DOES work. So whatever your theory is it looks to be heading in the right direction. I can just use &mode=refresh now I guess - this isn’t going into production so the performance loss (it loaded woodland_geometry slower anyway) is acceptable.

Yeah… unfortunately super overlays were prematurely made the default mode of the reflector, and are still buggy.

Many thanks Justin. If you need me to test anything else for this, just ask.

I guess if you can nail down the exact steps you used to reproduce, that would help, and we can fix the bug. However looking at where the code failed in the log, that line could probably be a bit more tolerable and fail more gracefully, or not fail at all.

Jonathan

2009/6/22 Justin Deoliveira jdeolive@anonymised.com mailto:[jdeolive@anonymised.com](mailto:jdeolive@anonymised.com1...)

That gives me enough, you are on windows running the standalone
embedded jetty version :).

Yeah, the logs folder is for the container and the data_dir/logs is
for geoserver, i agree, a bit confusing.

GeoServer can produce KML in one of 3 modes. It looks like a
problem with the superoverlay mode which is the default. Can you
try the following URL to access the KML:

http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test&mode=refresh
<http://localhost:8080/geoserver/wms/kml?layers=j2:geoserver_test&mode=refresh>

And let us know if it works.

Thanks,

-Justin


Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.