geopaparazzi / GSS

2 stars 5 forks source link

Empty server can produce invalid SQL queries #7

Open frafra opened 3 years ago

frafra commented 3 years ago

Here is what happens on a fresh installation when opening the data filter dialog and clicking on "OK".

postgres_1  | 2021-05-10 13:37:54.217 UTC [66] ERROR:  syntax error at or near ")" at character 51
postgres_1  | 2021-05-10 13:37:54.217 UTC [66] STATEMENT:  SELECT * FROM "gpslogs" WHERE "gpapprojectid" IN ()
gss_1       | ERROR:: /data:: 2021-05-10 13:37:54:: /data:: 
gss_1       | org.postgresql.util.PSQLException: ERROR: syntax error at or near ")"
gss_1       |   Position: 51
gss_1       |   at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2578)
gss_1       |   at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2313)
gss_1       |   at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:331)
gss_1       |   at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:448)
gss_1       |   at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:369)
gss_1       |   at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:159)
gss_1       |   at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:109)
gss_1       |   at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1471)
gss_1       |   at com.j256.ormlite.jdbc.JdbcCompiledStatement.runQuery(JdbcCompiledStatement.java:66)
gss_1       |   at com.j256.ormlite.stmt.SelectIterator.<init>(SelectIterator.java:56)
gss_1       |   at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:254)
gss_1       |   at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:203)
gss_1       |   at com.j256.ormlite.dao.BaseDaoImpl.query(BaseDaoImpl.java:281)
gss_1       |   at com.j256.ormlite.stmt.QueryBuilder.query(QueryBuilder.java:384)
gss_1       |   at com.j256.ormlite.stmt.Where.query(Where.java:516)
gss_1       |   at com.hydrologis.kukuratus.gss.GssDatabaseUtilities.getLogs(GssDatabaseUtilities.java:87)
gss_1       |   at com.hydrologis.kukuratus.gss.GssServerApiJavalin.lambda$addGetDataRoute$5(GssServerApiJavalin.java:602)
gss_1       |   at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
gss_1       |   at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
gss_1       |   at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
gss_1       |   at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
gss_1       |   at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
gss_1       |   at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
gss_1       |   at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
gss_1       |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
gss_1       |   at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
gss_1       |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
gss_1       |   at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
gss_1       |   at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
gss_1       |   at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
gss_1       |   at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
gss_1       |   at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
gss_1       |   at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
gss_1       |   at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
gss_1       |   at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
gss_1       |   at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
gss_1       |   at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
gss_1       |   at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
gss_1       |   at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
gss_1       |   at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
gss_1       |   at org.eclipse.jetty.server.Server.handle(Server.java:516)
gss_1       |   at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
gss_1       |   at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
gss_1       |   at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
gss_1       |   at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:279)
gss_1       |   at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
gss_1       |   at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
gss_1       |   at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
gss_1       |   at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
gss_1       |   at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
gss_1       |   at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
gss_1       |   at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
gss_1       |   at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
gss_1       |   at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
gss_1       |   at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
gss_1       |   at java.base/java.lang.Thread.run(Thread.java:832)
gss_1       | ACCESS:: /data:: 2021-05-10 13:37:55:: /data:: Received request by user frafra from 192.168.0.1
moovida commented 3 years ago

Tested this with the default H2GIS database (not using postgis right now). But I am not able to reproduce this.