Repository navigation
Conversation
- accept parameterized JSON and preserve legacy requests - validate bindings and roll back failed traversal transactions - verify core behavior on Java 17, TinkerPop 3.8.1, and RocksDB; document limits
- default text and JSON request bodies to UTF-8 - preserve explicitly declared media type encodings - verify real request bytes including gzip in an ASCII JVM - document charset behavior independent of platform defaults
Own HTTP request lifetime across TinkerPop error paths. Preserve custom channelizers and WebSocket behavior. Cover keepalive, early failures and reference counts. Document the scoped TinkerPop compatibility handler.
- reject invalid JSON and reserved translator values - roll back fatal errors and send terminal responses - preserve JSON serialization with declared charsets - align regression fixtures and compatibility notes
3 of 11 tasks
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3289 +/- ##
============================================
+ Coverage 41.19% 41.76% +0.56%
- Complexity 6773 6924 +151
============================================
Files 766 768 +2
Lines 66086 66205 +119
Branches 8773 8798 +25
============================================
+ Hits 27225 27651 +426
+ Misses 35818 35435 -383
- Partials 3043 3119 +76 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the PR
Cypher POST previously accepted only raw query text, missing parameters could silently become null,
and a failed write could leave changes visible after later reads. This change accepts validated JSON
bindings and rolls back traversal failures on the thread that owns the transaction.
This is a standalone change on current Apache master, which now includes the Java 17 / TinkerPop 3.8.1
upgrade. The translator remains
translation:1.0.4. Related organization PR:hugegraph#238. Paired website documentation:
apache/hugegraph-doc#499; coordinate its merge with this change.
Main Changes
application/json; accept{ "cypher": "RETURN $name AS name", "parameters": { "name": "marko" } }.Reject malformed/non-object JSON and unsupported
text/plainrequests.marker, and retain binding type/count validation. Real null and parameter names such as
idremain valid.thread after failures, including Java errors, and send a terminal failure response.
charset parameters. Release Gremlin HTTP requests exactly once on success and error paths.
Verifying these changes
All selected regressions, formatting, root clean compile and installation passed. Gremlin API retained
one existing non-shared-backend skip; Cypher tests had no skips. Advanced Cypher constructs, HStore, Bolt,
cross-request transactions and performance remain outside the verified scope. The compatibility note
also records the translator's reserved null-marker limitation for literals and stored properties.
Does this PR potentially affect the following parts?
Documentation Status
Doc - TODO: required documentation is pending; complete it before merging.Doc - Done: documentation is included here or linked below.Doc - No Need: no user-visible documentation is affected.Repository documentation:
docs/cypher-compatibility.md, the Server README, Commons README anddocs/upgrade-tinkerpop-3.8.md. Paired website PR: apache/hugegraph-doc#499.