[Geoserver-users] GetLegendGraphics - IllegalArgumentException

Hi,
in a GeoServer 2.1.3 instance I have a layer with a quite long sld style assoiciated; the getMap woks fine, but the GetLegendGraphics request fails with this error:

java.lang.IllegalArgumentException: class com.vividsolutions.jts.geom.Geometry is not supported by this method
class com.vividsolutions.jts.geom.Geometry is not supported by this method

Any advice?

Thank’s.

On Thu, Jul 26, 2012 at 3:29 PM, Gianni Barrotta <giannibarrotta@anonymised.com> wrote:

Hi,
in a GeoServer 2.1.3 instance I have a layer with a quite long sld style assoiciated; the getMap woks fine, but the GetLegendGraphics request fails with this error:

java.lang.IllegalArgumentException: class com.vividsolutions.jts.geom.Geometry is not supported by this method
class com.vividsolutions.jts.geom.Geometry is not supported by this method

Any advice?

Being a Java developer you should know that the above gives us nothing to work against.
Please provide the full SLD and the full stack trace from the logs

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


http://coreweb1.coremed.it/calabria_geoserver/wms?FORMAT=image/png&LAYER=Vincoli_01_1:Corine_Land_Cover__CLC_&REQUEST=getlegendgraphic&WIDTH=75&LEGEND_OPTIONS=forceLabels:on

On Sun, Jul 29, 2012 at 10:44 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Thu, Jul 26, 2012 at 3:29 PM, Gianni Barrotta <giannibarrotta@anonymised.com> wrote:

Hi,
in a GeoServer 2.1.3 instance I have a layer with a quite long sld style assoiciated; the getMap woks fine, but the GetLegendGraphics request fails with this error:

java.lang.IllegalArgumentException: class com.vividsolutions.jts.geom.Geometry is not supported by this method
class com.vividsolutions.jts.geom.Geometry is not supported by this method

Any advice?

Being a Java developer you should know that the above gives us nothing to work against.
Please provide the full SLD and the full stack trace from the logs

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


(attachments)

geoserver.log (2.49 MB)

On Wed, Aug 8, 2012 at 9:23 AM, Gianni Barrotta <giannibarrotta@anonymised.com> wrote:

http://coreweb1.coremed.it/calabria_geoserver/wms?FORMAT=image/png&LAYER=Vincoli_01_1:Corine_Land_Cover__CLC_&REQUEST=getlegendgraphic&WIDTH=75&LEGEND_OPTIONS=forceLabels:on

This is still not a stack trace, it’s the short error report. You have to enable verbose exception reporting
in order to get a full stack trace, or look in the logs and paste the full stack trace.

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Excuse me, you have a geoserver.log attached with the full stack trace of the error. Insn’t it enough?

On Wed, Aug 8, 2012 at 9:36 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Wed, Aug 8, 2012 at 9:23 AM, Gianni Barrotta <giannibarrotta@anonymised.com> wrote:

http://coreweb1.coremed.it/calabria_geoserver/wms?FORMAT=image/png&LAYER=Vincoli_01_1:Corine_Land_Cover__CLC_&REQUEST=getlegendgraphic&WIDTH=75&LEGEND_OPTIONS=forceLabels:on

This is still not a stack trace, it’s the short error report. You have to enable verbose exception reporting
in order to get a full stack trace, or look in the logs and paste the full stack trace.

Cheers

Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Wed, Aug 8, 2012 at 5:35 PM, Gianni Barrotta <giannibarrotta@anonymised.com> wrote:

Excuse me, you have a geoserver.log attached with the full stack trace of the error. Insn’t it enough?

Doh sorry, did not see the log file. It’s a full log file, would have been easier if you just reported the
exception (remember answers you get on this mailing lists are off volounteer times and breaks
during working hours)

That said, I can see no trace of the error message you reported in the log file attached:

grep Geometry /tmp/geoserver.log → returns nothing

The full error message was:

java.lang.IllegalArgumentException: class com.vividsolutions.jts.geom.Geometry is not supported by this method
class com.vividsolutions.jts.geom.Geometry is not supported by this method

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Wed, Aug 8, 2012 at 5:43 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Wed, Aug 8, 2012 at 5:35 PM, Gianni Barrotta <giannibarrotta@anonymised.com> wrote:

Excuse me, you have a geoserver.log attached with the full stack trace of the error. Insn’t it enough?

That said, I can see no trace of the error message you reported in the log file attached:

Daniele told me that file can actually be opened succesfully only on Windows (maybe it has been edited
with Notepad? it has a tendency to screw up UTF8 files in a way that makes it hard for Linux tools to deal
with them, in fact gedit refused to open it), the actual stack trace is:

09:20:44,046 INFO [geoserver.wms] -
Request: getServiceInfo
2012-08-08 09:20:44,046 ERROR [geoserver.ows] -
java.lang.IllegalArgumentException: class com.vividsolutions.jts.geom.Geometry is not supported by this method
at org.geotools.data.DataUtilities.defaultValue(DataUtilities.java:908)
at org.geotools.feature.simple.SimpleFeatureBuilder.convert(SimpleFeatureBuilder.java:315)
at org.geotools.feature.simple.SimpleFeatureBuilder.set(SimpleFeatureBuilder.java:296)
at org.geotools.feature.simple.SimpleFeatureBuilder.add(SimpleFeatureBuilder.java:219)
at org.geotools.feature.simple.SimpleFeatureBuilder.template(SimpleFeatureBuilder.java:501)
at org.geoserver.wms.legendgraphic.BufferedImageLegendGraphicBuilder.createSampleFeature(BufferedImageLegendGraphicBuilder.java:514)
at org.geoserver.wms.legendgraphic.BufferedImageLegendGraphicBuilder.buildLegendGraphic(BufferedImageLegendGraphicBuilder.java:163)
at org.geoserver.wms.legendgraphic.PNGLegendOutputFormat.produceLegendGraphic(PNGLegendOutputFormat.java:40)
at org.geoserver.wms.legendgraphic.PNGLegendOutputFormat.produceLegendGraphic(PNGLegendOutputFormat.java:21)
at org.geoserver.wms.GetLegendGraphic.run(GetLegendGraphic.java:50)
at org.geoserver.wms.DefaultWebMapService.getLegendGraphic(DefaultWebMapService.java:382)
at sun.reflect.GeneratedMethodAccessor354.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:51)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy23.getLegendGraphic(Unknown Source)
at sun.reflect.GeneratedMethodAccessor336.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:630)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:234)
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:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)
at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:185)
at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Unknown Source)

Ok, so the sample feature we use to paint the legend cannot be created because we don’t
know what type of geometry to create.
I guess the data is coming from Oracle, and nobody cared to setup the spatial index with
an indication of the geometry type being indexed?

To solve this issue one way is to setup the geometry metadata table and indicate the
proper geometry type there, see here in the guide:
http://docs.geoserver.org/stable/en/user/data/database/oracle.html

That requires a somehow recent version of GeoServer though, 2.1.3+ I believe.

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it