Hello,

I have a fully functional WFS service under geoserver 2.21.1 that results in a 
postgresql-related error in 2.22.2.

Setup: geoserver, extensions: app-schema, features-templating, ogc-api, 
smart-data-loader; PostgreSQL 15 (same for 14); jdk 11 (same for 17)

The service works under version 2.21.1 in Tomcat 9. The service fails under 
version 2.21.2 in Tomcat 9 and standalone with the following error (no other 
change to underlying software, configuration):

<ServiceExceptionReport version="1.2.0" xsi:schemaLocation="http://www.opengis.net/ogc 
http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd";<http://www.opengis.net/ogchttp://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd>>
<ServiceException>
java.lang.RuntimeException: java.io.IOException java.io.IOExceptionERROR: 
function count(character varying, character varying, character varying) does 
not exist Hint: No function matches the given name and argument types. You 
might need to add explicit type casts. Position: 8
</ServiceException>
</ServiceExceptionReport>
According to the log, this is a "org.postgresql.util.PSQLException". I paste 
the complete entry from the log (geoserver developer logging) below. It appears to be a 
problem with the PostgreSQL driver, but I am not sure how to proceed and how to track the 
problem down, so any advice is highly appreciated. (Was the driver changed during 
2.21.1/2 development? Is it possible to downgrade the driver and test?)

Henning

ERROR  [geoserver.ows] -
java.lang.RuntimeException: java.io.IOException
       at 
org.geotools.data.complex.MappingFeatureCollection.size(MappingFeatureCollection.java:329)
       at org.geoserver.wfs.CountExecutor.getCount(CountExecutor.java:44)
       at org.geoserver.wfs.GetFeature.getTotalCount(GetFeature.java:912)
       at org.geoserver.wfs.GetFeature.updateTotalCount(GetFeature.java:725)
       at org.geoserver.wfs.GetFeature.run(GetFeature.java:637)
       at 
org.geoserver.wfs.DefaultWebFeatureService.getFeature(DefaultWebFeatureService.java:109)
       at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
       at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.base/java.lang.reflect.Method.invoke(Method.java:568)
       at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
       at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
       at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
       at 
org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:51)
       at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
       at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
       at jdk.proxy3/jdk.proxy3.$Proxy126.getFeature(Unknown Source)
       at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
       at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.base/java.lang.reflect.Method.invoke(Method.java:568)
       at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:867)
       at 
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:268)
       at 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177)
       at 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
       at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)
       at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
       at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
       at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
       at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
       at 
org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
       at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
       at 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
       at 
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:73)
       at 
org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48)
       at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
       at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:194)
       at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
       at 
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:43)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
       at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
       at 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
       at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
       at 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
       at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
       at 
org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)
       at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
       at 
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
       at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
       at 
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81)
       at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
       at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
       at 
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
       at 
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
       at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
       at 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
       at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
       at 
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
       at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
       at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:49)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
       at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
       at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
       at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
       at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
       at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
       at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
       at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
       at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
       at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
       at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
       at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
       at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
       at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
       at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
       at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
       at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
       at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
       at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
       at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
       at org.eclipse.jetty.server.Server.handle(Server.java:516)
       at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
       at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
       at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
       at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
       at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
       at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
       at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
       at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
       at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
       at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
       at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
       at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
       at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException
       at 
org.geotools.appschema.jdbc.JoiningJDBCFeatureSource.getCountInternal(JoiningJDBCFeatureSource.java:1535)
       at 
org.geotools.data.store.ContentFeatureSource.getCount(ContentFeatureSource.java:488)
       at 
org.geotools.data.complex.AppSchemaDataAccess.getCount(AppSchemaDataAccess.java:314)
       at 
org.geotools.data.complex.MappingFeatureCollection.size(MappingFeatureCollection.java:327)
       ... 131 more
Caused by: org.postgresql.util.PSQLException: ERROR: function count(character 
varying, character varying, character varying) does not exist
 Hint: No function matches the given name and argument types. You might need to 
add explicit type casts.
 Position: 8
       at 
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
       at 
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366)
       at 
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356)
       at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:490)
       at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:408)
       at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:329)
       at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:315)
       at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:291)
       at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:243)
       at 
org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
       at 
org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
       at 
org.geotools.appschema.jdbc.JoiningJDBCFeatureSource.getCountInternal(JoiningJDBCFeatureSource.java:1523)
       ... 134 more
GnuPG-key:
http://pgp.mit.edu:11371/pks/lookup?search=0x484D3AF03B32FD38&op=index








När du har kontakt med oss på Uppsala universitet med e-post så innebär det att 
vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du 
läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/

E-mailing Uppsala University means that we will process your personal data. For 
more information on how this is performed, please read here: 
http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to