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.
