NOT IN cypher query with parameter of type List<>...

72 views
Skip to first unread message

kiteflo

unread,
May 21, 2012, 8:43:27 AM5/21/12
to Neo4j
Hi,

it seems there is an issue creating a NOT IN query in combination with
passed in params...this where condition works like charm:

WHERE (NOT (similar.id IN ['1','2','3'])) AND (similar.__type__ =
'Offer')

while this one will fail with a scala MatchError complaining about
some ArrayList stuff (exception is appended):

...
WHERE (NOT (similar.id IN {offerIds})) AND (similar.__type__ =
'Offer')
...

We pass in offerIds as a parameter list of strings (datatype is
correct, this is our own unique ID field): @Param("offerIds")
List<String> offerIds


We have tried several things, such as putting the param in [] for
example -> [{offerIds}] -> this one runs through smoothly but does not
take any effect in the query results, just like the filter being
ignored.

Any help is appreciated as usual, please find the exception below,
we've tried nearly anything and my guess ist that this is an issue
somewhere in the depth of neo - if so, would be great to know as well
as we will do a filtering on Java base (ugly) in this case.

Thanx, Florian;





Exception

21.05.2012 14:34:57 org.apache.catalina.core.StandardWrapperValve
invoke
SCHWERWIEGEND: Servlet.service() for servlet [dispatcher] in context
with path [/helios] threw exception [Request processing failed; nested
exception is scala.MatchError: [d053da06-e312-4633-baa9-86ee17455d8c,
b9221ac2-e578-498c-afea-53db5d50e072] (of class java.util.ArrayList)]
with root cause
scala.MatchError: [d053da06-e312-4633-baa9-86ee17455d8c, b9221ac2-
e578-498c-afea-53db5d50e072] (of class java.util.ArrayList)
at
org.neo4j.cypher.internal.commands.InIterable.isMatch(InIterable.scala:
30)
at org.neo4j.cypher.internal.commands.Not.isMatch(Predicate.scala:94)
at
org.neo4j.cypher.internal.pipes.matching.SimplePatternMatcherBuilder$
$anonfun$getMatches$1$$anonfun$apply
$3.apply(SimplePatternMatcherBuilder.scala:86)
at
org.neo4j.cypher.internal.pipes.matching.SimplePatternMatcherBuilder$
$anonfun$getMatches$1$$anonfun$apply
$3.apply(SimplePatternMatcherBuilder.scala:86)
at scala.collection.LinearSeqOptimized
$class.forall(LinearSeqOptimized.scala:69)
at scala.collection.immutable.List.forall(List.scala:45)
at
org.neo4j.cypher.internal.pipes.matching.SimplePatternMatcherBuilder$
$anonfun$getMatches$1.apply(SimplePatternMatcherBuilder.scala:86)
at
org.neo4j.cypher.internal.pipes.matching.SimplePatternMatcherBuilder$
$anonfun$getMatches$1.apply(SimplePatternMatcherBuilder.scala:78)
at scala.collection.TraversableLike$$anonfun$flatMap
$1.apply(TraversableLike.scala:200)
at scala.collection.TraversableLike$$anonfun$flatMap
$1.apply(TraversableLike.scala:200)
at scala.collection.Iterator$class.foreach(Iterator.scala:652)
at scala.collection.JavaConversions
$JIteratorWrapper.foreach(JavaConversions.scala:573)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:73)
at scala.collection.JavaConversions
$JIterableWrapper.foreach(JavaConversions.scala:587)
at scala.collection.TraversableLike
$class.flatMap(TraversableLike.scala:200)
at scala.collection.JavaConversions
$JIterableWrapper.flatMap(JavaConversions.scala:587)
at
org.neo4j.cypher.internal.pipes.matching.SimplePatternMatcherBuilder.getMatches(SimplePatternMatcherBuilder.scala:
78)
at
org.neo4j.cypher.internal.pipes.matching.MatchingContext.getMatches(MatchingContext.scala:
52)
at org.neo4j.cypher.internal.pipes.MatchPipe$$anonfun$createResults
$1.apply(MatchPipe.scala:33)
at org.neo4j.cypher.internal.pipes.MatchPipe$$anonfun$createResults
$1.apply(MatchPipe.scala:32)
at scala.collection.TraversableLike$$anonfun$flatMap
$1.apply(TraversableLike.scala:200)
at scala.collection.TraversableLike$$anonfun$flatMap
$1.apply(TraversableLike.scala:200)
at scala.collection.LinearSeqOptimized
$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike
$class.flatMap(TraversableLike.scala:200)
at scala.collection.immutable.List.flatMap(List.scala:45)
at
org.neo4j.cypher.internal.pipes.MatchPipe.createResults(MatchPipe.scala:
32)
at
org.neo4j.cypher.internal.pipes.FilterPipe.createResults(FilterPipe.scala:
30)
at
org.neo4j.cypher.internal.pipes.EagerAggregationPipe.createResults(EagerAggregationPipe.scala:
48)
at
org.neo4j.cypher.internal.pipes.ExtractPipe.createResults(ExtractPipe.scala:
38)
at
org.neo4j.cypher.internal.pipes.SortPipe.createResults(SortPipe.scala:
33)
at
org.neo4j.cypher.internal.pipes.SlicePipe.createResults(SlicePipe.scala:
32)
at
org.neo4j.cypher.internal.pipes.ColumnFilterPipe.createResults(ColumnFilterPipe.scala:
37)
at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl$$anonfun
$3$$anonfun$apply$1.apply(ExecutionPlanImpl.scala:62)
at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl$$anonfun
$3$$anonfun$apply$1.apply(ExecutionPlanImpl.scala:62)
at
org.neo4j.cypher.PipeExecutionResult.immutableResult(PipeExecutionResult.scala:
36)
at
org.neo4j.cypher.PipeExecutionResult.iterator(PipeExecutionResult.scala:
138)
at
org.neo4j.cypher.PipeExecutionResult.hasNext(PipeExecutionResult.scala:
140)
at scala.collection.Iterator$$anon$19.hasNext(Iterator.scala:334)
at scala.collection.JavaConversions
$IteratorWrapper.hasNext(JavaConversions.scala:562)
at
org.neo4j.helpers.collection.IteratorWrapper.hasNext(IteratorWrapper.java:
42)
at
org.neo4j.helpers.collection.IteratorUtil.addToCollection(IteratorUtil.java:
322)
at
org.neo4j.helpers.collection.IteratorUtil.addToCollection(IteratorUtil.java:
341)
at
org.springframework.data.neo4j.repository.query.GraphRepositoryQuery.createPage(GraphRepositoryQuery.java:
107)
at
org.springframework.data.neo4j.repository.query.GraphRepositoryQuery.dispatchQuery(GraphRepositoryQuery.java:
88)
at
org.springframework.data.neo4j.repository.query.GraphRepositoryQuery.execute(GraphRepositoryQuery.java:
70)
at
org.springframework.data.repository.core.support.RepositoryFactorySupport
$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:
313)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
171)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:
110)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
171)
at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:
155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:
204)
at $Proxy83.findRelatedOffersForOfferWithinRadiusExcluding(Unknown
Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:
307)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:
198)
at $Proxy84.findRelatedOffersForOfferWithinRadiusExcluding(Unknown
Source)
at
com.helios.service.plain.OfferService.findOffersSimilarExceptVisited(OfferService.java:
678)
at
com.helios.web.controller.OfferController.detail(OfferController.java:
364)
at com.helios.web.controller.OfferController$$FastClassByCGLIB$
$a1c74a23.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy
$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
at com.helios.web.controller.OfferController$$EnhancerByCGLIB$
$6d4a6e3b.detail(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:
212)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:
126)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:
96)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:
617)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:
578)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:
80)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:
900)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:
827)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:
882)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:
778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:
155)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:
197)
at
net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:
171)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
116)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:
113)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:
101)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:
113)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:
54)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:
45)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:
182)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:
105)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:
87)
at org.springframework.security.web.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:
173)
at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:
346)
at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:
259)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:
88)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:
76)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
98)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
928)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:
987)
at org.apache.coyote.AbstractProtocol
$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint
$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)

Andres Taylor

unread,
May 22, 2012, 3:33:12 AM5/22/12
to ne...@googlegroups.com
Hi Florian,

This is a bug that has been fixed in 1.8. Is it possible for you to upgrade to a milestone version of 1.8?

Andrés

kiteflo

unread,
May 22, 2012, 7:36:01 AM5/22/12
to Neo4j
Hi Andres,

well we tried:

https://groups.google.com/group/neo4j/browse_thread/thread/478b3ed2d92c9b09

Do you know which Logback dependencies need to be set?

Thanx, FLorian;

On 22 Mai, 09:33, Andres Taylor <andres.tay...@neotechnology.com>
wrote:
> > org.springframework.web.method.support.InvocableHandlerMethod.invoke(Invoca bleHandlerMethod.java:
> > 212)
> >        at
>
> > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequ est(InvocableHandlerMethod.java:
> > 126)
> >        at
>
> > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandl erMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:
> > 96)
> >        at
>
> ...
>
> Erfahren Sie mehr »
Reply all
Reply to author
Forward
0 new messages