[ https://issues.apache.org/jira/browse/DELTASPIKE-1470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17807201#comment-17807201 ]
Gilberto C Andrade commented on DELTASPIKE-1470: ------------------------------------------------ One discussion about it https://stackoverflow.com/q/38877775/269514 > PSQLException: ERROR: syntax error at or near ")" when using IN clause and > empty list > ------------------------------------------------------------------------------------- > > Key: DELTASPIKE-1470 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1470 > Project: DeltaSpike > Issue Type: Improvement > Security Level: public(Regular issues) > Components: Data-Module, JPA-Module > Affects Versions: 1.9.4 > Reporter: Gilberto C Andrade > Priority: Minor > > I'm getting this exception every time one query, that uses IN clause, > receives an empty parameter: > {code:java} > // > Caused by: javax.persistence.PersistenceException: Exception > [EclipseLink-4002] (Eclipse Persistence Services - > 2.7.7.v20200504-69f2c2b80d): > org.eclipse.persistence.exceptions.DatabaseException > Internal Exception: org.postgresql.util.PSQLException: ERROR: syntax error at > or near ")" > Posição: 396 > Error Code: 0 > Call: SELECT titulo_cobranca_id, ACEITE, codigo_movimento_remessa, > codigo_movimento_retorno, documento, dt_documento, dt_efetivacao_credito, > dt_emissao, dt_ocorrencia, dt_vencimento, especie, valor_juro, > motivo_ocorrencia, valor_multa, nosso_numero, situacao, valor, > valor_juros_multa_encargos, valor_pago, valor_tarifa, conta_bancaria_id, > pagador_id FROM gace.titulo_cobranca WHERE (nosso_numero IN ()) > Query: ReadAllQuery(referenceClass=TituloCobranca sql="SELECT > titulo_cobranca_id, ACEITE, codigo_movimento_remessa, > codigo_movimento_retorno, documento, dt_documento, dt_efetivacao_credito, > dt_emissao, dt_ocorrencia, dt_vencimento, especie, valor_juro, > motivo_ocorrencia, valor_multa, nosso_numero, situacao, valor, > valor_juros_multa_encargos, valor_pago, valor_tarifa, conta_bancaria_id, > pagador_id FROM gace.titulo_cobranca WHERE (nosso_numero IN ?)") > at > org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:391) > at > org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:264) > at > org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:482) > at org.apache.openejb.persistence.JtaQuery.getResultList(JtaQuery.java:87) > at > org.apache.deltaspike.data.impl.builder.result.QueryProcessorFactory$ListResultQueryProcessor.executeQuery(QueryProcessorFactory.java:96) > at > org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext.executeQuery(CdiQueryInvocationContext.java:253) > at > org.apache.deltaspike.data.impl.builder.AnnotatedQueryBuilder.execute(AnnotatedQueryBuilder.java:51) > at > org.apache.deltaspike.data.impl.builder.QueryBuilder.executeQuery(QueryBuilder.java:57) > at > org.apache.deltaspike.data.impl.builder.AnnotatedQueryBuilder$$OwbNormalScopeProxy0.executeQuery(org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java) > at > org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeNonTransactional(TransactionalQueryRunner.java:62) > at > org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:57) > at > org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$$OwbNormalScopeProxy0.executeQuery(org/apache/deltaspike/data/impl/tx/TransactionalQueryRunner.java) > at > org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:151) > at > org.apache.deltaspike.data.impl.handler.QueryHandler.invoke(QueryHandler.java:130) > at > org.apache.deltaspike.data.impl.handler.QueryHandler$$OwbNormalScopeProxy0.invoke(org/apache/deltaspike/data/impl/handler/QueryHandler.java) > at > org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.proceed(DeltaSpikeProxyInvocationHandler.java:97) > at > org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.invoke(DeltaSpikeProxyInvocationHandler.java:78) > at > org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler$$OwbNormalScopeProxy0.invoke(org/apache/deltaspike/proxy/spi/invocation/DeltaSpikeProxyInvocationHandler.java) > at > br.gov.to.bem.gace.repository.TituloCobrancaRepository$$DSPartialBeanProxy.findAllByNossoNumero(Unknown > Source) > at > br.gov.to.bem.gace.service.RetornoService.gerar(RetornoService.java:191) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) > at > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191) > at > org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102) > at jdk.internal.reflect.GeneratedMethodAccessor105.invoke(Unknown Source) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) > at > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85) > at > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:252) > at > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:212) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:265) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:260) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:89) > at > org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:349) > ... 67 common frames omitted > Caused by: org.eclipse.persistence.exceptions.DatabaseException: > Internal Exception: org.postgresql.util.PSQLException: ERROR: syntax error at > or near ")" > Posição: 396 > Error Code: 0 > {code} > {code:java} > @Query("SELECT e FROM TituloCobranca e WHERE e.nossoNumero IN > :identificadores") > public List<TituloCobranca> > findAllByNossoNumero(@QueryParam("identificadores") List<String> > identificadores);{code} > Maybe checking if the parameter is null before the execuction could solve > this problem. -- This message was sent by Atlassian Jira (v8.20.10#820010)