Thanks a lot for the report Bill,

do you think you could run this query in neo4j-shell with exception tracing 
enabled?
e.g. with 

bin/neo4j-shell -v -file myquery.cql 

and send us the full stacktrace? Feel free to raise a GitHub issue directly on 
github.com/neo4j/neo4j/issues <http://github.com/neo4j/neo4j/issues>

Thanks a lot

Michael

> Am 18.01.2015 um 21:58 schrieb [email protected]:
> 
> I started testing out the new version of Neo4j but immediately started 
> running into failures with queries that work in 2.1.5.  I am getting a 
> java.lang.ClassCastException with the following Cypher query:
> 
> E0118 12:48:45.089949    4673 transaction.go:204] 
> [{Neo.DatabaseError.Statement.ExecutionFailure 
> java.lang.ClassCastException@2769f40f}]
> E0118 12:48:45.089967    4673 transaction.go:207] 
>   MATCH
>     (u:user { id: { p01 } }), (p:project { id: { p02 } })
>   WITH u, p
> 
>   MATCH
>     (u)-[:CONTACT]->(c:contact)
>   WITH c, p
> 
>   OPTIONAL MATCH
>     
> (c)-[:CONTACT*1..3]->(r:projectrole)-[:CONTACT*0..2]->(:projectcontacts)-->(p)
>   WITH p, COLLECT({accessedby: c.id, accessedrole: r.name}) AS rs
>   WITH p, (
>     CASE 
>     WHEN ANY(r IN rs WHERE r.accessedrole = "ProjectAdmins")
>       THEN HEAD(FILTER(r IN rs WHERE r.accessedrole = "ProjectAdmins"))
>     WHEN ANY(r IN rs WHERE r.accessedrole = "ProjectClients")
>       THEN HEAD(FILTER(r IN rs WHERE r.accessedrole = "ProjectClients"))
>     WHEN ANY(r IN rs WHERE r.accessedrole = "ProjectContacts")
>       THEN HEAD(FILTER(r IN rs WHERE r.accessedrole = "ProjectContacts"))
>     ELSE HEAD(rs)
>     END
>     ) AS r
> 
>    
>   OPTIONAL MATCH (p)-[:CREATED]->(a:activity)
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: a.createdat, createdby: {id: a.contactid, object: "contact"}
>     } AS r
> 
>   OPTIONAL MATCH (p)-[:HISTORY]->(a:activity)
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: a.createdat, updatedby: {id: a.contactid, object: "contact"}
>     } AS r
> 
>   WITH DISTINCT p, r
> 
>   OPTIONAL MATCH (c:contact)-[:CONTACT]->(:projectadmins)-[:CONTACT*1..3]->p
>   WITH p, COLLECT(c) AS cs, r
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: r.updatedat, updatedby: r.updatedby,
>     admins: [c in cs | {id: c.id, object: c.object}]
>     } AS r
> 
>   OPTIONAL MATCH (c:contact)-[:CONTACT]->(:projectclients)-[:CONTACT*1..3]->p
>   WITH p, COLLECT(c) AS cs, r
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: r.updatedat, updatedby: r.updatedby,
>     admins: r.admins,
>     clients: [c in cs | {id: c.id, object: c.object}]
>     } AS r
> 
>   OPTIONAL MATCH (c:contact)-[:CONTACT]->(:projectcontacts)-[:CONTACT*1..3]->p
>   WITH p, COLLECT(c) AS cs, r
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: r.updatedat, updatedby: r.updatedby,
>     admins: r.admins, clients: r.clients,
>     contacts: [c in cs | {id: c.id, object: c.object}]
>     } AS r
> 
>   OPTIONAL MATCH (p)-[:AREA]->(:areas)-[:AREA]->(x:area)
>   WITH p, COLLECT(x) AS xs, r
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: r.updatedat, updatedby: r.updatedby,
>     admins: r.admins, clients: r.clients, contacts: r.contacts,
>     areas: [a IN xs | {id: a.id, object: a.object, name: a.name,
>       description: a.description, abbr: a.abbr }]
>     } AS r
> 
>   OPTIONAL MATCH p-[:PROJECTPHASE|TAG]->(x)
>   WITH p, COLLECT(x) AS xs, r
>   WITH p, {
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: r.updatedat, updatedby: r.updatedby,
>     admins: r.admins, clients: r.clients, contacts: r.contacts,
>     areas: r.areas,
>     projectphase: HEAD([x in xs WHERE x.object = "projectphase" | {id: x.id,
>       object: x.object, teamid: x.teamid, name: x.name,
>       description: x.description, color: x.color }]),
>     tags: [x in xs WHERE x.object = "tag" | {id: x.id, object: x.object, 
> name: x.name}]
>     } AS r
> 
>   RETURN COLLECT({
>     id: p.id, object: p.object, status: p.status,
>     teamid: p.teamid, no: p.no, name: p.name, description: p.description,
>     street: p.street, locality: p.locality, region: p.region,
>     postcode: p.postcode, country: p.country, neighborhood: p.neighborhood,
>     latlnglocation: p.latlnglocation,
>     imageurl: p.imageurl, workhours: p.workhours, startat: p.startat,
>     endat: p.endat, budget: p.budget, isfixedcost: p.isfixedcost,
>     deposit: p.deposit, depositreceivedat: p.depositreceivedat,
>     depositnote: p.depositnote, timezone: p.timezone,
>     materialmarkup: p.materialmarkup, isbid: p.isbid, salestax: p.salestax,
>     notes: p.notes, terms: p.terms,
>     accessedrole: r.accessedrole, accessedby: r.accessedby,
>     createdat: r.createdat, createdby: r.createdby,
>     updatedat: r.updatedat, updatedby: r.updatedby,
>     admins: r.admins, clients: r.clients, contacts: r.contacts,
>     areas: r.areas, projectphase: r.projectphase, tags: r.tags
>     }) AS r
> 
> I am seeing similar failures with other queries as well (probably because 
> they are structured the same).
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to