Fixed a bug in Gremlin.Net that can lead to an InvalidOperationException
due to modifying a collection while iterating over it in the serializers.
Bumped Netty to 4.1.96
Bumped jackson-databind
to 2.15.2 to fix security vulnerability.
Introduced maxNumberLength
, maxStringLength
, and maxNestingDepth
configs for GraphSON
serializers.
Fixed a memory leak in the Gremlin.Net driver that only occurred if a CancellationToken
was provided.
Fixed gremlin-python Client
problem where calling submit()
after` close()
would hang the system.
Added gremlin.spark.dontDeleteNonEmptyOutput
to stop deleting the output folder if it is not empty in spark-gremlin
.
Fixed a bug in SubgraphStrategy
where the vertex property filter produced errors if a Vertex
was missing the key provided to by()
as a token.
Upgraded gremlin-javascript
and gremlint
to Node 16.20.0.
Upgraded gremlin-go
to Go 1.20.
Improved the python Translator
class with better handling for P
, None
and subclasses of str
.
Fixed bug in FilterRankingStrategy
that was preventing certain traversals from recognizing labels in child traversals.
Added gremlin-java8.bat
file as a workaround to allow loading the console using Java 8 on Windows.
Fixed a bug in gremlin-server
where timeout tasks were not cancelled and could cause very large memory usage when timeout is large.
Removed jcabi-manifests
dependency from gremlin-core
, gremlin-driver
, and gremlin-server
.
Fixed a bug that caused the GremlinGroovyScriptEngine
to throw a MissingMethodException
when calling a static method in __ with the same name as an enum.
Deprecated Neo4j-Gremlin
Added VertexPropertyFilter
to GraphComputer
TINKERPOP-2920 SubgraphStrategy failure when property key not present on vertex in by()
TINKERPOP-2937 Throw an error when trying to use a closed connection
TINKERPOP-2944 Memory leak in Gremlin.Net driver if CancellationToken is used
TINKERPOP-2948 PRISMA security vulnerabilty for jackson-databind 2.14.0 (breaking)
TINKERPOP-2953 Static import for __.values() overriden by Column.values()
TINKERPOP-2958 ScheduledExecutorService for timeouts are never cancelled
TINKERPOP-2965 FilterRankingStrategy removing labels it shouldn’t in certain conditions
TINKERPOP-1403 Provide support for GraphFilter.vertexProperties() (breaking)
TINKERPOP-2941 DO NOT purge the output location if it has content in SparkGraphComputer
TINKERPOP-2954 Pass Gremlin Version from Maven to Java Without Manifests
TINKERPOP-2955 Support SSL in WebSocketClient
TINKERPOP-2977 Deprecate Neo4j-Gremlin
Added GraphFilter
support to GraphSONRecordReader
.
gremlin-python aiohttp dependency requirement upper bound relaxed to <4.0.0.
Fixed network connection closing for sessions and transactions in gremlin-python
.
Fixed memory cleanup for sessions and transactions in gremlin-python
and gremlin-go
.
Fixed bug in CountStrategy
where or()
and and()
filters were not being rewritten properly for some patterns.
Changed PartitionStrategy
to force its filters to the end of the chain for Vertex
and Edge
read steps, thus preserving order of the has()
.
Added RequestOptions
and RequestOptionsBuilder
types to Go GLV to encapsulate per-request settings and bindings.
Improved addE()
error messaging when traverser is not a Vertex
.
Added SubmitWithOptions()
methods to Client
and DriverRemoteConnection
in Go GLV to pass RequestOptions
to the server.
Fixed bug in which gremlin-server
would not respond to clients if an Error
was thrown during bytecode traversals.
Added ability to deploy multi-arch Docker images for server and console. Server image now supports AMD64 and ARM64.
Changed with()
configuration for ARGS_BATCH_SIZE
and ARGS_EVAL_TIMEOUT
to be more forgiving on the type of Number
used for the value.
Changed gremlin-console
to add imports via an ImportCustomizer to reduce time spent resolving imports.
Bumped to Groovy 2.5.22.
Fixed generateUserAgent()
in gremlin-javascript
and gremlin-dotnet
to handle null and undefined properly, and updated Java UserAgent error handling
Fixed bug in parsing of math()
expressions where variables were not being identified if they contained a text associated with a function.
Refactored FilterRankingStrategy
to improve performance for deeply nested traversals.
Refactored strategy application to improve performance by avoiding some excessive recursion.
Added Traversal.lock()
to provide an explicit way to finalize a traversal object.
Changed Traversal.getGraph()
to get its Graph
object from itself or, if not available, its parent.
Added AuthInfoProvider
interface and NewDynamicAuth()
to gremlin-go for dynamic authentication support.
Fixed bug where hasId()
unrolls ids in Java arrays to put into P.within
but not ids in lists, this also aligned behavior of start-step and mid-traversal hasId().
Bumped to snakeyaml
2.0 to fix security vulnerability.
Bumped to Apache commons-configuration
2.9.0 to fix security vulnerability.
Fixed CountStrategy
bug for cases where predicates contain negative numbers by disabling the optimization.
Improved count
step optimization for negative values in input for 'eq' comparison.
Fixed performance issue when using SampleGlobalStep
with a traverser that has either a LABELED_PATH
or PATH
requirement.
Reduce the toString()
of ObjectWritable
to avoid OOM for running OLAP queries on Spark.
TINKERPOP-2526 Gremlin Console performance with incomplete multi-line scripts
TINKERPOP-2767 Repeat Out Times traversal hangs indefinitely on first execution
TINKERPOP-2820 gremlin-python _close_session race condition/FD leak
TINKERPOP-2855 Performance degradation in TinkerGraph 3.5.4 and 3.5.5
TINKERPOP-2856 math() step fails if variable name contains a keyword
TINKERPOP-2861 Fix incorrect symlinks in source release zip
TINKERPOP-2863 HasId Step generates incorrect results when given a list of IDs mid-traversal
TINKERPOP-2878 Incorrect handling of local operations when there are duplicate elements
TINKERPOP-2888 DefaultTraversal’s applyStrategies performance decrease
TINKERPOP-2891 Inconsistent behavior when comparing a counted value with a negative value
TINKERPOP-2893 Incorrectly comparing a counted value with multiple predicates
TINKERPOP-2902 Critical security vulnerability in snakeyaml
TINKERPOP-2905 gremlin-go gorillaTransporter.logHandler is not initialized correctly and leads to panic
TINKERPOP-2911 CountStrategy converts count().is(0) wrongly under ConnectiveStrategy
TINKERPOP-2918 Utils.GenerateUserAgent assumes Gremlin.Net.dll to be present when, in some environments, it is not.
TINKERPOP-2841 Test and Fix Per Request Settings in Go
TINKERPOP-2852 Update Maven plugin for docker-images building for M1 compatibility
TINKERPOP-2857 GraphSONRecordReader does not allow configure a GraphFilter during deserialization
TINKERPOP-2865 Add has steps injected by PartitionStrategy at the end of the filter
TINKERPOP-2890 Avoid exceptions on local scope based steps where possible
TINKERPOP-2899 SampleGlobalStep samples inefficiently with TraverserSet running into hash collisions
TINKERPOP-2912 Improve error message for addE() when traverser is incorrect
TINKERPOP-2919 Improve performance of FilterRankingStrategy for deeply nested traversals
TINKERPOP-2934 Optimize ObjectWritable for displaying content of Java Collection or Map to reduce OOM
Changed the Result
struct in gremlin-go to make it more suitable for mocking in tests.
Changed label generation in PathProcessorStrategy
to be more deterministic.
Bumped to Apache commons-configuration
2.8.0 to fix security vulnerability.
Fixed issue where the GremlinGroovyScriptEngine
reused the same translator concurrently which lead to incorrect translations.
Fixed bug where tasks that haven’t started running yet time out due to evaluationTimeout
and never send a response back to the client.
Set the exact exception in initializationFailure
on the Java driver instead of the root cause.
Improved error message for when from()
and to()
are unproductive for addE()
.
Added SparkIOUtil
utility to load graph into Spark RDD.
Improved performance of CloneVertexProgram
by bypassing the shuffle state of SparkGraphComputer
.
Changed JavaTranslator
exception handling so that an IllegalArgumentException
is used for cases where the method exists but the signature can’t be discerned given the arguments supplied.
Dockerized all test environment for .NET, JavaScript, Python, Go, and Python-based tests for Console, and added Docker as a build requirement.
Async operations in .NET can now be cancelled. This however does not cancel work that is already happening on the server.
Bumped to snakeyaml
1.32 to fix security vulnerability.
Update docker/build.sh to work with docker-compose dockerized tests changes.
Fix permission issues with Docker generated files by setting permission to current user, so sudo isn’t needed for maven operations.
Updated base images for gremlin-server and gremlin-console docker images to support arm64.
Use Go embed for error/logger resources for gremlin-go
to avoid missing resource files when using binaries.
Added user agent to web socket handshake in java driver. Can be controlled by a new enableUserAgentOnConnect configuration. It is enabled by default.
Added user agent to web socket handshake in Gremlin.Net driver. Can be controlled by EnableUserAgentOnConnect
in ConnectionPoolSettings
. It is enabled by default.
Added user agent to web socket handshake in go driver. Can be controlled by a new EnableUserAgentOnConnect
setting. It is enabled by default.
Added user agent to web socket handshake in python driver. Can be controlled by a new enable_user_agent_on_connect
setting. It is enabled by default.
Added user agent to web socket handshake in javascript driver. Can be controlled by a new enableUserAgentOnConnect
option. It is enabled by default.
Added logging in .NET.
Added addDefaultXModule
to GraphSONMapper
as a shortcut for including a version matched GraphSON extension module.
Modified GraphSONRecordReader
and GraphSONRecordWriter
to include the GraphSON extension module by default.
Bumped jackson-databind
to 2.14.0 to fix security vulnerability.
Bumped to Groovy 2.5.15.
Bumped to Netty 4.1.86.
Bumped ivy
to 2.5.1 to fix security vulnerability
Removed default SSL handshake timeout. The SSL handshake timeout will instead be capped by setting connectionSetupTimeoutMillis
.
Improved logging for gremlin-driver
.
Modified Connection
and Host
job scheduling in gremlin-driver
by dividing their work to two different thread pools and sparing work from the primary pool responsible for submitting requests and reading results.
Prevented usage of the fork-join pool for gremlin-driver
job scheduling.
Modified GremlinScriptChecker
to extract the Tokens.REQUEST_ID
from Gremlin scripts.
Changed Host
initialization within a Client
to be parallel again in gremlin-driver
.
Changed mechanism for determining Host
health which should make the driver more resilient to intermittent network failures.
Removed the delay for reconnecting to a potentially unhealthy Host
only marking it as unavailable after that initial retry fails.
Prevented fast NoHostAvailableException
in favor of more direct exceptions when borrowing connections from the ConnectionPool
.
Improved Gherkin tests for more consistent results.
Provides users with potentially more information to driver TimeoutExceptions.
Fixed an issue in Go and Python GLVs where modifying per request settings to override request_id’s was not working correctly.
Fixed incorrect implementation for GraphTraversalSource.With
in gremlin-go
.
Changed Gremlin.version()
to return "VersionNotFound" if the version is missing from the manifest.
Fixed local steps to avoid throwing an exception for non-iterable input.
Fixed a case sensitivity issue when comparing request UUIDs in gremlin-javascript
.
TINKERPOP-2765 Race condition during script creation when using UnifiedChannelizer
TINKERPOP-2769 gremlin-server does not reply with a timeout response to all timed out requests
TINKERPOP-2771 Critical severity security vulnerabilty in commons-configuration 2.7
TINKERPOP-2796 High severity security vulnerability found in snakeyaml
TINKERPOP-2803 Incorrect count() with sample() in TinkerGraph
TINKERPOP-2809 High severity security vulnerability found in jackson databind
TINKERPOP-2815 Critical security vulnerability for apache commons-text
TINKERPOP-2816 Gherkin test issues for implementers
TINKERPOP-2817 Support java.lang.Byte in hadoop GraphSONRecordWriter/GraphSONRecordReader
TINKERPOP-2826 Critical security vulnerability in ivy
TINKERPOP-2836 Github actions do not run java driver integration tests
TINKERPOP-2840 Test Failures on NonDex
TINKERPOP-2843 Security vulnerabilities found in netty version 4.1.77
TINKERPOP-2849 Incorrect implementation for GraphTraversalSource.With in gremlin-go
TINKERPOP-2471 Add logging to Gremlin.Net driver
TINKERPOP-2480 User agent for Gremlin drivers
TINKERPOP-2737 Dockerized Build and Test Environments
TINKERPOP-2772 Add Spark utility to load vertices as RDD
TINKERPOP-2779 Floating ConnectedComponent Feature Failures for GitHub Actions on windows
TINKERPOP-2785 Inability to Mock Returned Result Types in Gremlin-Go Driver
TINKERPOP-2792 Better exception when JavaTranslator finds a method but not the overload
TINKERPOP-2794 Allow cancellation of Gremlin.Net async methods
TINKERPOP-2808 Improve Compatibility on ARM machines
TINKERPOP-2813 Improve driver usability for cases where NoHostAvailableException is currently thrown
TINKERPOP-2814 Add a SSL handshake timeout configuration to the driver
TINKERPOP-2833 TestSupport loads files too slow
TINKERPOP-2834 CloneVertexProgram optimization on SparkGraphComputer
TINKERPOP-2842 Expand GremlinScriptChecker to include request id overrides
Added exception to Gremlin Server that is thrown when using a transaction on a non-transaction graph.
Exposed error message sent by the server as a property on GremlinServerError
for gremlin-python
Allowed datetime()
syntax to accept zone offset with colon separators and seconds.
Fixed a minor problem in the Gremlin parser where a GraphTraversalSource
may not have been initialized.
Added getters to high and low properties in RangeLocalStep
.
Added Pick
traversal to the return from getGlobalChildren()
for BranchStep
.
Ensured Pick
traversal was an integrated child.
Added GraphBinary serialization support to gremlin-javascript.
Improved startup time by removing unnecessary DNS lookup.
Bumped to logback 1.2.9.
Bumped to netty 4.1.77.
Fixed bug in submitAsync()
in gremlin-python where the deprecated version was not returning its result.
Added missing ResponseStatusCodeEnum
entries for 403, 429, 497, and 596 for .NET.
Added GraphBinary support in gremlin-python for short, bigdecimal and biginteger.
Fixed bug in PartitionStrategy
where the use of AbstractLambdaTraversal
caused an unexpected exception.
Fixed bug where close requests for sessions were improperly validating the request in the UnifiedChannelizer
.
Deprecated and removed functionality of the connectOnStartup
option in gremlin-javascript
to resolve potential unhandledRejection
and race conditions.
Ensured Graph
instance was set between TraversalStrategy
executions.
Fixed potential NullPointerException
in gremlin-driver
where initialization of a ConnectionPool
would fail but not throw an exception due to centralized error check being satisfied by a different process.
Fixed a bug where the JavaScript client would hang indefinitely on traversals if the connection to the server was terminated.
Fix a javadoc comment in Cluster.Builder regarding maxInProcessPerConnection.
Added a getter for selectKeys in SelectStep
TINKERPOP-2734 NullPointerException when calling Client chooseConnection()
TINKERPOP-2735 IllegalStateException: Unrecognized content of the 'gremlin' argument… on connection close
TINKERPOP-2736 PluginAcceptror interface no more available in 3.5.3+ but referred in documentation
TINKERPOP-2741 GraphMLWriter error message is not properly formatted
TINKERPOP-2751 Transaction: tx.commit() hangs up in javascript client-lib
TINKERPOP-2754 Javascript client hangs if the server restarts
TINKERPOP-2763 client.submitAsync returns None value
TINKERPOP-2768 BranchStep pickToken should be integrated when added as a child option
TINKERPOP-2229 JavaScript GLV: Add GraphBinary Support
TINKERPOP-2631 GraphSON float serialization when ujson is used is imprecise
TINKERPOP-2693 Complete GraphBinary support in Python
TINKERPOP-2740 first request suspend more than 9s when using gremlin-java-driver
TINKERPOP-2748 Medium security vulnerability on netty-all and netty-codec
TINKERPOP-2762 getScopeKeys should respect the order of keys passed in Step
TINKERPOP-2764 AWS Neptune returns an inaccessible structured error response
Added support for using a readable stream when submitting scripts through the JavaScript driver which allows processing each batch of result sets as they come in, rather than waiting for the entire result set to complete before allowing processing.
Fixed issue with implicit conversion of Infinity
number instances into BigDecimal
.
Ensured that new properties are added before triggering the associated event.
Added support for WebSocket compression in the .NET driver. (Only available on .NET 6.)
Added Groovy Translator
for .NET.
Bumped to jackson-databind
2.13.2.2.
Fixed bug in DefaultTraversal.clone()
where the resulting Traversal
copy could not be re-iterated.
Fixed bug in JavaTranslator
that did not handle has()
well where null
was the first argument.
Renamed GremlinBaseVisitor
to DefaultGremlinBaseVisitor
in gremlin-core
to prevent conflict with the generated GremlinBaseVisitor
in gremlin-language
.
Tracked transaction spawned connections and closed them when the parent connection was closed for gremlin-python
.
Prevented unintentionally opening another transaction in TraversalOpProcessor`
and SessionOpProcessor
of Gremlin Server.
Fixed bug in Translator
of gremlin-python
around translation of Booleans.
TINKERPOP-2694 Bug of TinkerGraph gremlin api "has()"
TINKERPOP-2706 Traversal clone() not resetting the close state
TINKERPOP-2712 PropertyChangedEvent is triggered before Property is actually changed
TINKERPOP-2717 Gremlin.NET : WebSocketConnection does not check for MessageType.Close, causing error InvalidOperationException: "Received data deserialized into null object message. Cannot operate on it."
TINKERPOP-2719 hasNext is called on TraverserIterator after transaction is committed
TINKERPOP-2726 Python’s GroovyTranslator translates boolean wrong
TINKERPOP-2367 Gremlin Translators for .NET
TINKERPOP-2518 Enhance .NET gherkin framework to deal with more advanced assertions
TINKERPOP-2651 Update to .NET 6
TINKERPOP-2679 Update JavaScript driver to support processing messages as a stream
TINKERPOP-2682 Enable WebSocket compression in .NET by default
TINKERPOP-2707 Closing parent connection in python should close tx() connections
TINKERPOP-2711 Make gremlin-language optional as it brings in CDDL/GPL dependencies
TINKERPOP-2716 Enable eslint for gremlin-javascript project
TINKERPOP-2725 Traversal Strategy Mix Up In Gremlin-Python
TINKERPOP-2727 HasContainer should allow a null key
TINKERPOP-2728 jackson-databind high security issue identified
This release also includes changes from 3.4.13.
Added an AnonymizingTypeTranslator
for use with GroovyTranslator
which strips PII (anonymizes any String, Numeric, Date, Timestamp, or UUID data)
Added support for g.tx()
in Python.
Added logging in in Python.
Added tx()
syntax to gremlin-language
.
Fixed shutdown cleanup issue in Python aiohttp transport layer.
Added a NoSugarTranslator
translator to PythonTranslator
which translates Gremlin queries to Python without syntactic sugar (ex g.V().limit(1)
instead of g.V()[0:1]
)
Added support for g.Tx()
in .NET.
Added support for with()
constant options to io()
.
Changed GroovyTranslator
to generate code more compatible to Java with Date
and Timestamp
.
Fixed bug in the processing of the io()
step when constructing a Traversal
from the grammar.
Added the ConnectedComponent
tokens required to properly process the with()
of the connectedComponent()
step.
Fixed DotNetTranslator
bugs where translations produced Gremlin that failed due to ambiguous step calls to has()
.
Fixed bug where RepeatUnrollStrategy
, InlineFilterStrategy
and MessagePassingReductionStrategy
were all being applied more than necessary.
Modified grammar to accept the datetime()
function so that Gremlin scripts have a way to natively construct a Date
.
Ensured PathRetractionStrategy
is applied after InlineFilterStrategy
which prevents an error in traverser mapping in certain conditions.
Deprecated JsonBuilder
serialization for GraphSON and Gryo.
Added ProductiveByStrategy
to ensure consistency of by()
modulator behaviors when child traversal arguments contained no elements.
Changed drivers to once again send the previously deprecated and removed "close" message for sessions.
Modified fold()
to merge Map
instances with addAll
.
Allowed null
string values in the Gremlin grammar.
Fixed support for SeedStrategy
in the Gremlin Grammar.
Fixed bug in Translator
of gremlin-javascript
around array translation.
Fixed bugs in PythonTranslator
, JavascriptTranslator
and DotNetTranslator
when translating TraversalStrategy
objects to Javascript.
Prevented exception with hasLabel(null)
and hasKey(null)
and instead filter away traversers as these structural components can’t ever be null.
Improved handling of null
when passed to P
predicates.
Handled null
for mathematical reducing operations of sum()
, mean()
, max()
and min()
.
Allowed null
values in Memory
for GraphComputer
.
Allowed null
assignment in withSideEffect()
.
Allowed labelling of steps that emit a traverser carrying null
.
Fixed bug in filtering for null
property key arguments to valueMap()
, elementMap()
, properties()
and values()
.
Modified grammar to allow a call to within()
and without()
with no arguments.
Fixed problems with inject(null)
variations where null
was the only value being submitted.
Fixed problem with GroovyTranslator
and inject(null,null)
which could be interpreted as the Groovy JDK extension inject(Object,Closure)
.
Fixed error where certain variants of inject()
with null
might not properly construct a traversal in .NET.
Prevented exception with hasValue(null)
and allowed filtering as expected.
Refined DotNetTranslator
to be more explicit with null
arguments to ensure that the right overloads are called.
Created GremlinParser
to construct Traversal
objects from gremlin-language
.
Added GremlinLangScriptEngine
as a GremlinScriptEngine
implementation that users the grammar and JavaTranslator
to evaluate Gremlin.
Added getter method for bypassTraversal
in AbstractLambdaTraversal
.
Added support for custom GraphBinary types in .NET.
Removed some unnecessary exception wrapping around gremlin-driver
errors now producing a more immediate view of the actual error cause.
TINKERPOP-2569 Reconnect to server if Java driver fails to initialize
TINKERPOP-2585 Traversal failed for different strategies order
TINKERPOP-2589 XML External Entity (XXE) vulnerability
TINKERPOP-2597 NullPointerException while initializing connection pool
TINKERPOP-2598 within(null) NPE
TINKERPOP-2603 TinkerGraph sometimes could not query float values.
TINKERPOP-2609 HTTP returns serialization exceptions for the GraphTraversalSource
TINKERPOP-2621 toString for traversals such as within with empty array returns empty string as argument instead of brackets
TINKERPOP-2626 RangeGlobalStep closes traversal prematurely
TINKERPOP-2649 Unable to translate gremlin query to java
TINKERPOP-2658 Translator in gremlin-javascript has trouble with array arguments
TINKERPOP-2662 Unclosed client session and stacktrace pops up when cleanup is missed
TINKERPOP-2670 JavaDocs do not build when using JDK 11
TINKERPOP-2504 Intermittently failing server/driver integration tests
TINKERPOP-2555 Support for remote transactions in Python
TINKERPOP-2556 Support remote transactions in .NET
TINKERPOP-2570 Support custom type in GraphBinary for .NET
TINKERPOP-2582 Construct traversals from gremlin-language
TINKERPOP-2583 Make gremlin-groovy processing optional in Gremlin Server
TINKERPOP-2591 Administrative adjustments to gremlint site
TINKERPOP-2592 Align the style guides
TINKERPOP-2596 datetime function
TINKERPOP-2605 Further enforce and refine null semantics
TINKERPOP-2615 Expand testing of path() with null values
TINKERPOP-2616 Provide better exceptions with SSL related failures (breaking)
TINKERPOP-2620 Clean up NullPointerExceptions related to null arguments on property related steps
TINKERPOP-2630 Clarify that a server cannot support Graphson1.0 over HTTP
TINKERPOP-2632 Netty 4.1.61 flagged with two high severity security violations
TINKERPOP-2637 Enhance logging in the Python
TINKERPOP-2646 Make .NET StreamExtensions public for GraphBinary
TINKERPOP-2656 Provide a no syntax sugar translator for python
TINKERPOP-2660 Bring back close message for drivers
TINKERPOP-2666 Create an anonymizing Translator for logging traversals without user data
TINKERPOP-2667 Allow fold() with addAll to work on Map
TINKERPOP-2668 Updating aiohttp requirements at germin-python due to vulnerability
TINKERPOP-2669 Netty 4.1.61 flagged with medium severity security violations
TINKERPOP-2671 Add tx() support to grammar
This release also includes changes from 3.4.12.
Added support for g.tx()
in Javascript.
Fixed bug in Javascript error message related to validating anonymous traversal spawns.
Changed close of Python and Javascript connections to no longer send a "close message" as the server no longer acknowledges it as of 3.5.0.
Fixed bug where the Graph
instance was not being assigned to child traversals.
Removed sending of deprecated session close message from Gremlin.Net driver.
TINKERPOP-2358 Potential connection leak on client disposing
TINKERPOP-2554 Extracting step metrics from ProfileStep throws NPE if the step was not triggered
TINKERPOP-2565 GraphMLWriter does not check vertexLabelKey conflict
TINKERPOP-2566 Incomplete error message in bytecode step generation
TINKERPOP-2568 Graph instance not set for child traversals
TINKERPOP-2578 Set arguments to P within/without are wrapped in List
TINKERPOP-2579 EventStrategy doesn’t work with anonymous traversal
TINKERPOP-2580 Update the custom DSL documentation
TINKERPOP-2548 Add getter for indexer used in IndexStep
TINKERPOP-2551 Setup scripts to publish Gremint to npm
TINKERPOP-2557 Support remote transactions in Javascript
TINKERPOP-2559 Stop sending the close message for .NET
TINKERPOP-2560 Stop sending close message for Python
TINKERPOP-2561 Stop sending close message in Javascript
TINKERPOP-2576 Setup automatic updates via Dependabot for Gremlin.NET
TINKERPOP-2577 Remove unused test coverage dependencies from Gremlin.NET
This release also includes changes from 3.4.11.
Changed transport implementation to use AIOHTTP instead of Tornado for gremlin-python.
Added max_content_length and unit test for it in gremlin-python.
Removed compression_option support for transport in gremlin-python.
Fixed event loop issues and added unit test for it in gremlin-python.
Fixed DriverRemoteConnection multithreading issues and added unit test for it in gremlin-python.
Fixed heartbeat timeout issues and tested with local server manually for gremlin-python.
Fixed build errors emitted for gremlin-python (asyncio task destroyed but is pending error).
Added gremlin-language
module.
Allowed the possibility for the propagation of null
as a Traverser
in Gremlin.
Added a fully shaded version of gremlin-driver
.
Exposed websocket connection status in JavaScript driver.
Fixed a bug where spark-gremlin was not re-attaching properties when using dedup()
.
Fixed a bug in WsAndHttpChannelizer
pipeline configuration where failed object aggregation could not write back HTTP responses.
Ensured better consistency of the use of null
as arguments to mutation steps.
Added a ResponseStatusCode
to indicate that a client should retry its request.
Added TemporaryException
interface to indicate that a transaction can be retried.
Prevented TraversalStrategy
instances from being added more than once, where the new instance replaces the old.
Improved error message for addE()
when the from()
or to()
does not resolve to a Vertex
.
Improved error message for addE()
when cardinality is specified on property()
assignments.
Allowed property(T.label,Object)
to be used if no value was supplied to addV(String)
.
Dropped support for .NET Standard 1.3 in Gremlin.Net. Only .NET Standard 2.0 is supported starting with this version.
Added GraphBinary support for .NET.
Added UnifiedChannelizer
which exposes HTTP and Websockets connections and processes both sessionless and in-session requests with the same gremlinPool
.
Bounded the gremlinPool
in Gremlin Server to enforce rate limiting which will then produce a TOO_MANY_REQUESTS
response status code.
Switched from Newtonsoft.Json
to System.Text.Json
as the JSON library for Gremlin.Net.
Allowed additional arguments to Client.submit()
in Javascript driver to enable setting of parameters like scriptEvaluationTimeout
.
Gremlin.Net driver no longer supports skipping deserialization by default. Users can however create their own IMessageSerializer
if they need this functionality.
Supported deserialization of dict
and list
as a key in a dict
for Python.
Changed the aliased Client
to proxy close()
methods to its underlying client.
Added support for remote g.tx()
usage.
Added support for bytecode-based sessions.
Added a Graph.Feature
for supportsNullPropertyValues
.
Modified TokenTraversal
to support Property
thus by(key)
and by(value)
can now apply to Edge
and meta-properties.
Added SeedStrategy
to allow deterministic behavior for coin()
, sample()
and Order.shuffle
.
Added Grouping
step interface.
Added TraversalParent.replaceTraversal()
which can replace a direct child traversal.
Added ByModulatorOptimizationStrategy
which replaces certain standard traversals w/ optimized traversals (e.g. TokenTraversal
).
Improved IdentityRemovalStrategy
by accounting for EndStep
situations.
Added IdentityRemovalStrategy
to the standard list of TraversalStrategies
.
Modified PathRetractionStrategy
to leave labels more often with match()
cases to return more consistent results.
Refactored MapStep
to move its logic to ScalarMapStep
so that the old behavior could be preserved while allow other implementations to have more flexibility.
Modified TinkerGraph to support null
property values and can be configured to disable that feature.
Modified null
handling in mutations to be consistent for a new Vertex
as well as update to an existing one.
Enforced use of anonymous child traversals.
Removed support for Python 2.x in gremlinpython.
Upgraded to Apache Commons Configuration2.
Renamed StoreStep
to AggregateLocalStep
.
Renamed AggregateStep
to AggregateGlobalStep
.
Renamed SERVER_ERROR_SCRIPT_EVALUATION
to SERVER_ERROR_EVALUATION
given that this response code applies to remote traversals as well as scripts.
Refactored TraversalStrategies
to implement Iterable
.
Refactored Traversal
semantics to always expect EmptyStep
as a parent if it is meant to be the root Traversal
.
Configured GraphBinary as the default binary serialization format for the Java Driver.
Configured GraphSON 3.0 as the default text serialization format when no serializer can be determined.
Configured GraphSON 3.0 as the default setting for the GraphSONMapper
.
Added JavascriptTranslator
for Java.
Added DotNetTranslator
for Java.
Added Groovy Translator
for Python.
Fixed bug in PythonTranslator
for processing TraversalStrategy
instances in GraphBinary.
Fixed bug in bytecode Bindings
where calling of()
prior to calling a child traversal in the same parent would cause the initial binding to be lost.
Migrated from Tornado to AIOHTTP for gremlinpython.
Bumped to Neo4j 3.4.11.
Bumped to Spark 3.0.0.
Bumped to Jackson 2.11.x.
Supported build for Java 11.
Added MessageSerializer.getMapper()
to return the underlying object that handles serialization for a particular implementation.
Added a parameterized TypeTranslator
for use with GroovyTranslator
that should produce more cache hits.
Added support for TextP
in Neo4j using its string search functions.
Added a kerberos KDC to the docker container for testing GLV’s.
Added kerberos authentication to Gremlin-Python.
Added audit logging to bytecode-based traversals.
Changed TraversalStrategy
application methodology to apply each strategy in turn to each level of the traversal hierarchy starting from root down to children.
Added a VertexProgramRestrictionStrategy.
Prevented more than one Client
from connecting to the same Gremlin Server session.
Changed the Groovy to an optional dependency in gremlin-driver
.
Added support for configuring an Authorizer
implementation to Gremlin Server, allowing for authorization of individual gremlin requests.
Added gremlint
module to house the Gremlin query formatting JavaScript library powering gremlint.com.
Removed internal functionality for the session close message in Gremlin Server - the message is accepted but ignored if sent.
Removed Property.Exceptions.propertyValueCanNotBeNull
exception type as null
now has meaning in Gremlin.
Removed the "experimental" support for multi/meta-properties in Neo4j.
Removed Gryo serialization configurations from Gremlin Server sample configurations and default configurations.
Removed previously deprecated custom keep-alive functionality in the Java driver.
Removed previously deprecated BytecodeUtil
.
Removed previously deprecated Cluster.maxWaitForSessionClose
configuration option.
Removed previously deprecated TraversalStrategies.applyStrategies()
.
Removed previously deprecated scriptEvaluationTimeout
.
Removed previously deprecated NioChannelizer
and related classes.
Removed previously deprecated remote traversal side-effects and related infrastructure.
Removed previously deprecated Serializers.DEFAULT_RESULT_SERIALIZER
and Serializers.DEFAULT_REQUEST_SERIALIZER
.
Removed previously deprecated decr
and incr
from Order
.
Removed previously deprecated TraversalSource.withRemote()
.
Removed previously deprecated ResponseHandlerContext
infrastructure.
Removed previously deprecated VertexProgram
related infrastructure.
Removed previously deprecated SSL settings: keyCertChainFile
, keyFile
, keyPassword
and trustCertChainFile
and related infrastructure.
Removed previously deprecated PropertyMapStep
constructor and isIncludeTokens
.
Removed previously deprecated StarGraph.builder()
and StarGraph.Builder.create()
.
Removed previously deprecated AbstractOpProcessor.generateMetaData(ChannelHandlerContext, RequestMessage, ResponseStatusCode, Iterator)
Removed previously deprecated BulkDumperVertexProgram
and BulkLoaderVertexProgram
.
TINKERPOP-1619 TinkerGraphComputer worker count affects OptionalStep query results
TINKERPOP-2107 Spark fails to reattach properties
TINKERPOP-2157 SparkStarBarrierInterceptor injects (Byte) 0
TINKERPOP-2159 EventStrategy doesn’t handle multi-valued properties
TINKERPOP-2175 Executor thread is not returned on channel close
TINKERPOP-2185 Use commons-configuration2 instead of commons-configuration (breaking)
TINKERPOP-2192 Gremlin.Net.Driver.Connection.Parse throws a NullReferenceException
TINKERPOP-2224 Detect and fix resource leak
TINKERPOP-2230 match() step unexpected behaviours
TINKERPOP-2232 RemoteStrategy does not call parent class TraversalStrategy init
TINKERPOP-2238 Fix remaining iterator leaks marked by @IgnoreIteratorLeak
TINKERPOP-2241 Client exception don’t match Server exception when server throw StackOverflowError
TINKERPOP-2248 Instability of driver for blocked requests
TINKERPOP-2257 transaction itty may still be visited after commit
TINKERPOP-2264 Gremlin Python should deserialize g:Date to UTC
TINKERPOP-2266 Keep alive not started at connection creation
TINKERPOP-2274 Test of TinkerGraph Gremlin fail on Windows and non EN locale
TINKERPOP-2276 No constructor for remote connection in DSL generated traversal source
TINKERPOP-2283 GraphStep’s ids null exception
TINKERPOP-2285 Error object is unreachable
TINKERPOP-2288 Get ConnectionPoolBusyException and then ServerUnavailableExceptions
TINKERPOP-2289 Use address instead of hostname for connection
TINKERPOP-2290 Javascript GLV connection refused error handling
TINKERPOP-2291 TraversalExplanation deserialization in GraphSON
TINKERPOP-2298 Bytecode.java flattenArguments throw exception when null
TINKERPOP-2303 GremlinDsl generate addV instead of addE
TINKERPOP-2318 Edge properties dedup() not work with spark-gremlin (breaking)
TINKERPOP-2337 In upgrade guide for 3.4.2, the option RemoteConnection.PER_REQUEST_TIMEOUT does not exist
TINKERPOP-2338 drop() not removing all edge/meta properties
TINKERPOP-2341 GremlinClientExtensions.SubmitAsync hangs as it tries to dispose connection
TINKERPOP-2345 NullPointerException when Map key is not found for math()
TINKERPOP-2347 Remove invalid service descriptors from gremlin-shaded
TINKERPOP-2350 clone() is not deep copying Traversal internals
TINKERPOP-2351 Local Map ordering of keys can generate cast errors
TINKERPOP-2352 Gremlin Python driver default pool size makes Gremlin keep-alive difficult
TINKERPOP-2353 Error while Shutting Down Gremlin Server
TINKERPOP-2360 failed to deserializer int32 when gremlin-python submit bytecode with a big int value
TINKERPOP-2364 Injected ProfileStep should not be displayed in child traversals
TINKERPOP-2365 LazyBarrierStrategy adds a NoOpBarrierStep when profile() is present
TINKERPOP-2368 JAVA_OPTIONS are not properly expanded in gremlin-console
TINKERPOP-2369 Connections in ConnectionPool are not replaced in background when underlying channel is closed
TINKERPOP-2374 SaslAndHttpBasicAuthenticationHandler can’t extract authorization
TINKERPOP-2383 has(T,Traversal) does not return results
TINKERPOP-2384 Inject and withSideEffect causing different outcomes in order step
TINKERPOP-2388 gremlinpython: Can’t close DriverRemoteConnection
TINKERPOP-2403 Gremlin javascript Translator does not handle child traversals
TINKERPOP-2405 gremlinpython: traversal hangs when the connection is established but the servers stops responding later
TINKERPOP-2408 Iterator leak in HasContainer
TINKERPOP-2409 js: DriverRemoteConnection never times out if server uri not available.
TINKERPOP-2410 Free up server threads when client is closed
TINKERPOP-2425 Server closes HTTP connection for keepAlive as true
TINKERPOP-2432 Generate correct toString() representation of bytecode in Javascript
TINKERPOP-2433 typo in javadocs match() Type Parameters
TINKERPOP-2435 Gremlin Python sugar syntax for values() can lead to unexpected problems
TINKERPOP-2437 gremlin-driver hangs if ResultSet.statusAttributes().get() is called when the request throws
TINKERPOP-2439 P and TextP toString() is broken
TINKERPOP-2458 Bytecode Bindings lost when followed by a child traversal
TINKERPOP-2465 TestHelper.generateTempFileFromResource file handling is invalid on windows
TINKERPOP-2475 Barrier step touches one more element of next loop
TINKERPOP-2478 Console byte code translator has issues with "new Date()"
TINKERPOP-2496 GremlinDslProcessor fails when SocialTraversalSourceDsl overrides close
TINKERPOP-2505 Gremlin Python Client Query Times out at 30 seconds instead of the server timeout
TINKERPOP-2512 Duplicate jars in classpath when running gremlin-server.sh
TINKERPOP-2513 Generics insufficiently strict on property()
TINKERPOP-2514 Java client driver requests with same request ids hang
TINKERPOP-2516 Property folding has trouble with coalesce
TINKERPOP-2529 Global dedup() in reducing by() of group() detaches elements for OLTP
TINKERPOP-2531 Gremlin .NET driver ConnectionPool can remain without connections if server is down for 1-2 minutes
TINKERPOP-709 Consider Bounding Gremlin Pool Queue Size
TINKERPOP-1084 Branch option tokens should be allowed to be traversals.
TINKERPOP-1553 Deprecate store() in favor of aggregate(Scope)
TINKERPOP-1568 Change strategy application order (breaking)
TINKERPOP-1641 Kerberos authentication for gremlin-python
TINKERPOP-1682 by-modulator optimization strategy
TINKERPOP-1733 hasKey, hasValues should work on Element and Property
TINKERPOP-1810 Add Lambda.binaryOperator and Lambda.unaryOperator
TINKERPOP-1838 Python sample script
TINKERPOP-1886 Gremlin Python driver to periodically issue ping / heartbeat to gremlin server
TINKERPOP-1921 Support hasNext terminal step in GLVs
TINKERPOP-1994 LazyBarrierStrategy fully responsible for barrier() additions
TINKERPOP-2001 Support lambdas in Javascript
TINKERPOP-2014 Allow an ability to specify seeding for random methods such as coin, sample and Order.shuffle
TINKERPOP-2020 Support withComputer() for javascript
TINKERPOP-2046 Gremlin-Python: Support custom request headers in WebSocket request
TINKERPOP-2054 Support TraversalStrategy specification in gremlin-javascript
TINKERPOP-2076 Build with Java 11
TINKERPOP-2080 Remove deprecated TraversalSource.withRemote() (breaking)
TINKERPOP-2099 Property setting with null has different behavior between add and update (breaking)
TINKERPOP-2133 Use neo4j index lookup in Neo4jGraphStep with HasContainers containing TextP predicates
TINKERPOP-2168 GraphSON: P deserialization should be optimized
TINKERPOP-2213 Replace scriptEvaluationTimeout in favor of something more suitable to bytecode
TINKERPOP-2215 Better exception message for connection problems
TINKERPOP-2223 Update jackson databind to 2.9.9
TINKERPOP-2231 Remove deprecated bulk dumping/loading VertexPrograms (breaking)
TINKERPOP-2233 Remove deprecated Order decr/incr (breaking)
TINKERPOP-2235 Better handle the concept of null in traversals (breaking)
TINKERPOP-2236 Improve error messaging for TinkerGraph IdManagers that fail on conversions
TINKERPOP-2237 Prevent error when closing sessions that don’t exist (breaking)
TINKERPOP-2239 Remove previously deprecated SSL configuration options (breaking)
TINKERPOP-2242 Bump to netty 4.1.36
TINKERPOP-2243 Add user-agent to RequestOptions
TINKERPOP-2245 Consolidate the executor for bytecode & string based client
TINKERPOP-2246 Consolidate the error propagation to the client
TINKERPOP-2250 Support toString serialization in GraphBinary
TINKERPOP-2251 Remove deprecated VertexProgram-related methods (breaking)
TINKERPOP-2252 A meaningful way to support session based byteCode interaction through gremlin-driver
TINKERPOP-2254 Rename AggregateStep and StoreStep given aggregate(Scope,String) (breaking)
TINKERPOP-2256 processAllStarts of AggregateStep should only be called when barrier is empty
TINKERPOP-2259 Default Java based driver and server operations to GraphBinary and remove Gryo (breaking)
TINKERPOP-2260 Update jackson databind 2.9.9.1
TINKERPOP-2262 Improve Netty protocol handling
TINKERPOP-2265 Deprecate Traversal.getSideEffects() functionality for remoting purposes
TINKERPOP-2269 Remove remote side-effect related infrastructure (breaking)
TINKERPOP-2270 Deprecate multi/metaproperty support in Neo4j
TINKERPOP-2271 Add console preference to control server-originated warning display
TINKERPOP-2272 Rename steps and tokens that conflict with standard python functions
TINKERPOP-2273 Remove deprecated ResponseHandlerContext infrastructure (breaking)
TINKERPOP-2277 Python sdk postpone the timing to create transport
TINKERPOP-2279 GraphBinary support in Python
TINKERPOP-2280 Prevent use of T values as property key overloads
TINKERPOP-2284 Make it easier to return more structure of graph elements
TINKERPOP-2295 Remove deprecated scriptEvaluationTimeout (breaking)
TINKERPOP-2296 Per query timeout not working from Python
TINKERPOP-2302 Add isOnGraphComputer() field accessor to ElementMapStep
TINKERPOP-2307 Add better error message for badly configured Channelizer
TINKERPOP-2310 Reduce Traversal.isRoot() to a check of EmptyStep (breaking)
TINKERPOP-2311 TraversalStrategies implementing Iterable (breaking)
TINKERPOP-2312 Empty keys to group() should group to null
TINKERPOP-2314 Employ by(String) for Map when possible and improve errors around incorrect types
TINKERPOP-2315 Implement some form of clone() or reset() for Traversal in GLVs
TINKERPOP-2317 Remove Python 2 support (breaking)
TINKERPOP-2320 [SECURITY] XMLInputFactory initialization in GraphMLReader introduces
TINKERPOP-2325 Generate traversals that will better yield index lookups with SPARQL
TINKERPOP-2327 Remove deprecated NIO protocol support (breaking)
TINKERPOP-2328 Do not close all connections if just one has became closed
TINKERPOP-2335 Drop support for older GLV runtimes
TINKERPOP-2336 Allow close of channel without having to wait for server
TINKERPOP-2349 Switch from Newtonsoft.Json to System.Text.Json (breaking)
TINKERPOP-2354 Document recommendation to reuse graph traversal source
TINKERPOP-2356 Bump to Jackson 2.10.x
TINKERPOP-2357 Add a command to clear the Gremlin Console screen
TINKERPOP-2361 Prevent using GraphTraversalSource spawned traversals as children (breaking)
TINKERPOP-2371 Add possibility to import constants with ImportGremlinPlugin
TINKERPOP-2376 Probability distribution controlled by weight when using sample step
TINKERPOP-2377 Investigate intermittent .NET GLV test failures
TINKERPOP-2389 Authorization support in TinkerPop
TINKERPOP-2391 Drop GLV Templating System
TINKERPOP-2392 Improve module level documentation for GLVs
TINKERPOP-2394 Unable to use __ class of a custom DSL when passing a script even if this class is imported (breaking)
TINKERPOP-2395 Gremlin Python doesn’t support list as keys in groupCount
TINKERPOP-2396 TraverserSet should be extendable for GraphDB provider
TINKERPOP-2397 Don’t create the default Gyro serializer if the caller specifies a different one
TINKERPOP-2401 Upgrade Jackson-databind to 2.11.x
TINKERPOP-2406 Delegate processing from event loop to worker threads
TINKERPOP-2407 Support deserialization of a dict that has a dict as a key
TINKERPOP-2412 Add missing query tests
TINKERPOP-2413 Prefer withEmbedded() to withGraph() on AnonymousTraversalSource
TINKERPOP-2415 Avoid unnecessary detached objects if not required
TINKERPOP-2416 MultiIterator should implement AutoCloseable
TINKERPOP-2418 Store authenticated user on server pipeline
TINKERPOP-2420 Support per query request options in .NET
TINKERPOP-2421 Support per query options in javascript
TINKERPOP-2426 Use Netty’s WebSocketClientProtocolHandler
TINKERPOP-2427 Simplify Netty reference counting
TINKERPOP-2430 Looping Recipies
TINKERPOP-2431 Operating on Dropped Elements Recipes
TINKERPOP-2436 The gremlin server starts even if all graphs instantiation has failed
TINKERPOP-2438 Provide a way for scripts to respect with() specification of timeout
TINKERPOP-2440 Simplify driver by delegating keepAlive logic to Netty
TINKERPOP-2441 Add compression to WebSocket frames sent from client
TINKERPOP-2442 Make Translators that work in Java part of gremlin-core
TINKERPOP-2443 Improve testing of Translator instances for non-JVM languages with focus on Python as a model
TINKERPOP-2445 Speed up client initialization (breaking)
TINKERPOP-2446 Add Recipe for Optional Looping
TINKERPOP-2447 Improve handling of StackOverflowError for long traversals
TINKERPOP-2451 JavascriptTranslator for Java
TINKERPOP-2452 DotNetTranslator for Java
TINKERPOP-2453 Add WebSocket compression to gremlin-python
TINKERPOP-2455 Remove deprecated custom keep-alive functionality in the Java driver Channelizer (breaking)
TINKERPOP-2457 Add a max_content_length parameter to DriverRemoteConnection in the Python client
TINKERPOP-2460 Change groovy to provided scope in gremlin-driver (breaking)
TINKERPOP-2461 Align CoreImports with GroovyTranslator
TINKERPOP-2462 Duplicated BytecodeUtil and BytecodeHelper classes
TINKERPOP-2466 Improve syntax for Groovy scripts that use withStrategies()
TINKERPOP-2468 Stabilize shouldProcessSessionRequestsInOrder() test
TINKERPOP-2469 KrbException - Principal does not exist in test
TINKERPOP-2470 Bump gremlinpython to tornado 6.x
TINKERPOP-2472 GraphBinary support in .NET
TINKERPOP-2473 Prevent TraversalStrategy instances of the same type to be added to a TraversalSource
TINKERPOP-2474 withSack() Groovy translation output could be simplified
TINKERPOP-2476 Provide fully shaded version of Java driver
TINKERPOP-2479 Provide a way to set a custom GraphSONMapper for :bytecode command
TINKERPOP-2481 IdentityRemovalStrategy not installed (breaking)
TINKERPOP-2482 Rename wsConnectionTimeout to connectionSetupTimeout
TINKERPOP-2484 Python IOLoop close errors
TINKERPOP-2485 Invalid http tests with ?gremlin=1-1
TINKERPOP-2494 Document Translator parameter extraction functionality
TINKERPOP-2499 PathRetractionStrategy returns inconsistent results when match() is not detected as the final step (breaking)
TINKERPOP-2500 Add none() step for all GLVs
TINKERPOP-2506 Expose client WebSocket connection status
TINKERPOP-2517 Introduce a retry status code to the server protocol
TINKERPOP-2527 Add a GroovyTranslator equivalent method to the Python client
TINKERPOP-2530 Transfer OyvindSabo/gremlint and OyvindSabo/gremlint.com to apache/tinkerpop/gremlint
TINKERPOP-2532 MaxBarrierSize of NoOpBarrierStep should be accessible
TINKERPOP-2533 Develop a grammar for Gremlin
TINKERPOP-2535 Netty 4.1.52 flagged as medium security violation
TINKERPOP-2537 Support bytecode based requests in sessions and remote tx()
TINKERPOP-2544 Modify site publishing scripts to include gremlint
TINKERPOP-2546 Change transport layer to use AIOHTTP instead of Tornado
TINKERPOP-2547 Provide an option to supply a callback before handshake submission
TINKERPOP-2550 Deadlock on Client initialization
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )