You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/02/09 19:29:40 UTC

[1/2] tinkerpop git commit: Improved error messaging on request/response serialization/deserialization CTR

Repository: tinkerpop
Updated Branches:
  refs/heads/master 304a7ae3f -> 8c079598e


Improved error messaging on request/response serialization/deserialization CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/97947c1a
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/97947c1a
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/97947c1a

Branch: refs/heads/master
Commit: 97947c1a60e399a4f53e2b3e60c4bef60bdbc94f
Parents: 4e284c0
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Feb 9 14:02:48 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Feb 9 14:02:48 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                           | 1 +
 .../driver/ser/AbstractGraphSONMessageSerializerV2d0.java    | 8 ++++----
 .../driver/ser/AbstractGryoMessageSerializerV1d0.java        | 8 ++++----
 3 files changed, 9 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/97947c1a/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index c562ccd..9dcb7f0 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Added the "Kitchen Sink" test data set.
 * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
 * Delayed setting of the request identifier until `RequestMessage` construction by the builder.
+* Improved error messaging for failed serialization and deserialization of request/response messages.
 * Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.
 * Added `IndexedTraverserSet` which indexes on the value of a `Traverser` thus improving performance when used.
 * Utilized `IndexedTraverserSet` in `TraversalVertexProgram` to avoid extra iteration when doing `Vertex` lookups.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/97947c1a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
index 9527224..ab79ec9 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
@@ -118,7 +118,7 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
         } catch (Exception ex) {
             if (encodedMessage != null) ReferenceCountUtil.release(encodedMessage);
 
-            logger.warn("Response [{}] could not be serialized by {}.", responseMessage.toString(), AbstractGraphSONMessageSerializerV2d0.class.getName());
+            logger.warn(String.format("Response [%s] could not be serialized by %s.", responseMessage, AbstractGraphSONMessageSerializerV2d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }
@@ -138,7 +138,7 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
         } catch (Exception ex) {
             if (encodedMessage != null) ReferenceCountUtil.release(encodedMessage);
 
-            logger.warn("Request [{}] could not be serialized by {}.", requestMessage.toString(), AbstractGraphSONMessageSerializerV2d0.class.getName());
+            logger.warn(String.format("Request [%s] could not be serialized by %s.", requestMessage, AbstractGraphSONMessageSerializerV2d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }
@@ -150,7 +150,7 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
             msg.readBytes(payload);
             return mapper.readValue(payload, RequestMessage.class);
         } catch (Exception ex) {
-            logger.warn("Request [{}] could not be deserialized by {}.", msg, AbstractGraphSONMessageSerializerV2d0.class.getName());
+            logger.warn(String.format("Request [%s] could not be deserialized by %s.", msg, AbstractGraphSONMessageSerializerV2d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }
@@ -162,7 +162,7 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
             msg.readBytes(payload);
             return mapper.readValue(payload, ResponseMessage.class);
         } catch (Exception ex) {
-            logger.warn("Response [{}] could not be deserialized by {}.", msg, AbstractGraphSONMessageSerializerV2d0.class.getName());
+            logger.warn(String.format("Response [%s] could not be deserialized by %s.", msg, AbstractGraphSONMessageSerializerV2d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/97947c1a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
index c79c124..868f5b5 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
@@ -198,7 +198,7 @@ public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageS
                         .create();
             }
         } catch (Exception ex) {
-            logger.warn("Response [{}] could not be deserialized by {}.", msg, GryoMessageSerializerV1d0.class.getName());
+            logger.warn(String.format("Response [%s] could not be deserialized by %s.", msg, AbstractGryoMessageSerializerV1d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }
@@ -236,7 +236,7 @@ public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageS
         } catch (Exception ex) {
             if (encodedMessage != null) ReferenceCountUtil.release(encodedMessage);
 
-            logger.warn("Response [{}] could not be serialized by {}.", responseMessage.toString(), GryoMessageSerializerV1d0.class.getName());
+            logger.warn(String.format("Response [%s] could not be serialized by %s.", responseMessage, AbstractGryoMessageSerializerV1d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }
@@ -263,7 +263,7 @@ public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageS
                 return builder.create();
             }
         } catch (Exception ex) {
-            logger.warn("Request [{}] could not be deserialized by {}.", msg, GryoMessageSerializerV1d0.class.getName());
+            logger.warn(String.format("Request [%s] could not be deserialized by %s.", msg, AbstractGryoMessageSerializerV1d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }
@@ -297,7 +297,7 @@ public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageS
         } catch (Exception ex) {
             if (encodedMessage != null) ReferenceCountUtil.release(encodedMessage);
 
-            logger.warn("Request [{}] could not be serialized by {}.", requestMessage.toString(), GryoMessageSerializerV1d0.class.getName());
+            logger.warn(String.format("Request [%s] could not be serialized by %s.", requestMessage, AbstractGryoMessageSerializerV1d0.class.getName()), ex);
             throw new SerializationException(ex);
         }
     }


[2/2] tinkerpop git commit: Merge branch 'tp32'

Posted by sp...@apache.org.
Merge branch 'tp32'

Conflicts:
	CHANGELOG.asciidoc


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8c079598
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8c079598
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8c079598

Branch: refs/heads/master
Commit: 8c079598ee9cbd67b67af8296ff7920691ce28dc
Parents: 304a7ae 97947c1
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Feb 9 14:29:28 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Feb 9 14:29:28 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                           | 3 ++-
 .../driver/ser/AbstractGraphSONMessageSerializerV2d0.java    | 8 ++++----
 .../driver/ser/AbstractGryoMessageSerializerV1d0.java        | 8 ++++----
 3 files changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c079598/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 1ba3aa8,9dcb7f0..e60186d
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -16,255 -16,6 +16,255 @@@ limitations under the License
  ////
  = TinkerPop3 CHANGELOG
  
 +== TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)
 +
 +image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/gremlin-mozart.png[width=185]
 +
 +[[release-3-3-2]]
 +=== TinkerPop 3.3.2 (Release Date: NOT OFFICIALLY RELEASED YET)
-                              
++
 +This release also includes changes from <<release-3-2-8, 3.2.8>>.
 +
 +* Fixed regression issue where the HTTPChannelizer doesn't instantiate the specified AuthenticationHandler
 +* Defaulted GLV tests for gremlin-python to run for GraphSON 3.0.
 +* In gremlin-python, the GraphSON 3.0 `g:Set` type is now deserialized to `List`.
 +
 +[[release-3-3-1]]
 +=== TinkerPop 3.3.1 (Release Date: December 17, 2017)
 +
 +This release also includes changes from <<release-3-2-7, 3.2.7>>.
 +
 +* Added `NoneStep` and `Traversal.none()` for full filtering integration with `iterate()`.
 +* Fixed bug in serialization of `Path` for GraphSON 3.0 in `gremlin-python`.
 +* Added support for GraphSON 3.0 in Gremlin.Net.
 +* Added `math()`-step which supports scientific calculator capabilities for numbers within a traversal.
 +* Added missing `GraphTraversalSource.addE()`-method to `GremlinDslProcessor`.
 +* Changed `to()` and `from()` traversal-based steps to take a wildcard `?` instead of of `E`.
 +* Added `addV(traversal)` and `addE(traversal)` so that created element labels can be determined dynamically.
 +* `PageRankVertexProgram` supports `maxIterations` but will break out early if epsilon-based convergence occurs.
 +* Added support for epsilon-based convergence in `PageRankVertexProgram`.
 +* Fixed two major bugs in how PageRank was being calculated in `PageRankVertexProgram`.
 +* Added `Io.requiresVersion(Object)` to allow graph providers a way to check the `Io` type and version being constructed.
 +* Defaulted `IoCore.gryo()` and `IoCore.graphson()` to both use their 3.0 formats which means that `Graph.io()` will use those by default.
 +* Bumped Neo4j 3.2.3
 +
 +==== Bugs
 +
 +* TINKERPOP-1773 Lop should be created as a "software" and not a "person"
 +* TINKERPOP-1783 PageRank gives incorrect results for graphs with sinks *(breaking)*
 +* TINKERPOP-1799 Failure to serialize path() in gremlin-python
 +* TINKERPOP-1847 tinkergraph-gremlin dependency on gremlin-test, bad scope?
 +
 +==== Improvements
 +
 +* TINKERPOP-1632 Create a set of default functions
 +* TINKERPOP-1692 Bump to Neo4j 3.2.3
 +* TINKERPOP-1717 Update name and link of DynamoDB storage backend in landing page
 +* TINKERPOP-1730 Gremlin .NET support for GraphSON 3.0
 +* TINKERPOP-1767 Method for graph providers to check an IO version and type
 +* TINKERPOP-1793 addE() should allow dynamic edge labels
 +* TINKERPOP-1834 Consider iterate() as a first class step
 +
 +[[release-3-3-0]]
 +=== TinkerPop 3.3.0 (Release Date: August 21, 2017)
 +
 +This release also includes changes from <<release-3-2-6, 3.2.6>>.
 +
 +* Removed previously deprecated `ScriptElementFactory`.
 +* Added `GraphTraversalSource.addE(String)` in support of `g.addE().from().to()`.
 +* Added support for `to(Vertex)` and `from(Vertex)` as a shorthand for `to(V(a))` and `from(V(b))`.
 +* Bumped to support Spark 2.2.0.
 +* Detected if type checking was required in `GremlinGroovyScriptEngine` and disabled related infrastructure if not.
 +* Removed previously deprecated `GraphTraversal.selectV3d0()` step.
 +* Removed previously deprecated `DetachedEdge(Object,String,Map,Pair,Pair)` constructor.
 +* Removed previously deprecated `Bindings` constructor. It is now a private constructor.
 +* Removed previously deprecated `TraversalSource.withBindings()`.
 +* Removed previously deprecated `GraphTraversal.sack(BiFunction,String)`.
 +* `TraversalMetrics` and `Metrics` Gryo 1.0 formats changed given internal changes to their implementations.
 +* Made `TraversalMetrics` safe to write to from multiple threads.
 +* Removed previously deprecated `TraversalSideEffects` methods.
 +* Removed previously deprecated `finalization.LazyBarrierStrategy` (moved to `optimization.LazyBarrierStrategy`).
 +* Removed previously deprecated `Constants` in Hadoop.
 +* Removed previously deprecated `VertexComputing.generateComputer(Graph)`.
 +* Removed previously deprecated `ConfigurationTraversal`.
 +* Established the Gryo 3.0 format.
 +* `GryoVersion` now includes a default `ClassResolver` to supply to the `GryoMapper`.
 +* `GryoClassResolver` renamed to `GryoClassResolverV1d0` which has an abstract class that for providers to extend in `AbstractGryoClassResolver`.
 +* Removed previously deprecated `Order` enums of `keyIncr`, `keyDecr`, `valueIncr`, and `valueDecr.`
 +* Removed previously deprecated `GraphTraversal.mapKeys()` step.
 +* Removed previously deprecated `GraphTraversal.mapValues()` step.
 +* Removed previously deprecated `GraphTraversal#addV(Object...)`.
 +* Removed previously deprecated `GraphTraversal#addE(Direction, String, String, Object...)`.
 +* Removed previously deprecated `GraphTraversal#addOutE(String, String, Object...)`.
 +* Removed previously deprecated `GraphTraversal#addInV(String, String, Object...)`.
 +* Removed previously deprecated `GraphTraversal.groupV3d0()` and respective `GroupSideEffectStepV3d0` and `GroupStepV3d0`.
 +* Removed previously deprecated `TraversalSource.Builder` class.
 +* Removed previously deprecated `ConnectiveP`, `AndP`, `OrP` constructors.
 +* Removed previously deprecated `TraversalScriptFunction` class.
 +* Removed previously deprecated `TraversalScriptHelper` class.
 +* Removed previously deprecated `ScriptEngineCache` class.
 +* Removed previously deprecated `CoreImports` class.
 +* Removed previously deprecated `GremlinJythonScriptEngine#()` constructor.
 +* Removed access to previously deprecated `CoreGremlinPlugin#INSTANCE` field.
 +* `gremlin.sh` and `gremln.bat` no longer support the option to pass a script as an argument for execution mode without using the `-i` option.
 +* Graphite and Ganglia are no longer packaged with the Gremlin Server distribution.
 +* `TransactionException` is no longer a class of `AbstractTransaction` and it extends `RuntimeException`.
 +* Included an ellipse on long property names that are truncated.
 +* Renamed `RangeByIsCountStrategy` to `CountStrategy`.
 +* Added more specific typing to various `__` traversal steps. E.g. `<A,Vertex>out()` is `<Vertex,Vertex>out()`.
 +* Updated Docker build scripts to include Python dependencies (NOTE: users should remove any previously generated TinkerPop Docker images).
 +* Added "attachment requisite" `VertexProperty.element()` and `Property.element()` data in GraphSON serialization.
 +* GraphSON 3.0 is now the default serialization format in TinkerGraph and Gremlin Server.
 +* Changed `ServerGremlinExecutor` to not use generics since there really is no flexibility in the kind of `ScheduledExecutorService` that will be used.
 +* Removed support for passing a byte array on the `sasl` parameter.
 +* Removed previously deprecated `GraphSONMapper$Builder#embedTypes` option.
 +* Removed previously deprecated `:remote config timeout max`.
 +* Removed previously deprecated `ConnectionPoolSettings.sessionId` and `ConnectionPoolSettings.optionalSessionId()`.
 +* Removed previously deprecated `reconnectInitialDelay` setting from the Java driver.
 +* Removed previously deprecated `useMapperFromGraph` option.
 +* Established the GraphSON 3.0 format with new `g:Map`, `g:List` and `g:Set` types.
 +* Removed previously deprecated `Io.Builder#registry(IoRegistry)` method.
 +* Removed previously deprecated `GryoMessageSerializerV1d0(GryoMapper)` constructor.
 +* Removed previously deprecated `TinkerIoRegistry`.
 +* Removed previously deprecated `getInstance()` methods on all TinkerPop classes.
 +* Removed previously deprecated `VertexPropertyFeatures.supportsAddProperty()`.
 +* Removed previously deprecated TinkerGraph configuration member variables.
 +* Removed previously deprecated `Transaction.submit(Function)`.
 +* Removed previously deprecated `OpSelectorHandler.errorMeter` and `AbstractEvalOpProcessor.errorMeter` fields.
 +* Removed previously deprecated `AbstractEvalOpProcessor.validBindingName` field.
 +* Removed previously deprecated `SimpleAuthenticator.CONFIG_CREDENTIALS_LOCATION` field.
 +* Removed previously deprecated `IteratorHandler`, `NioGremlinResponseEncoder` and `WsGremlinResponseEncoder` classes.
 +* Removed previously deprecated `Session.kill()` and `Session.manualKill()`.
 +* Removed previously deprecated `Authenticator.newSaslNegotiator()` and its method implementations in classes that were assignable to that interface.
 +* Removed `gremlin-groovy-test`.
 +* Removed previously deprecated "G" functions in `gremlin-groovy` (i.e. `GFunction`).
 +* Removed references to the old `GremlinPlugin` system that was in `gremlin-groovy` - the revised `GremlinPlugin` system in `gremlin-core` is the only one now in use.
 +* `GremlinGroovyScriptEngine` no longer implements the now removed `DependencyManager`.
 +* Added `Vertex`, `Edge`, `VertexProperty`, and `Property` serializers to Gremlin-Python and exposed tests that use graph object arguments.
 +* `Bytecode.getSourceInstructions()` and `Bytecode.getStepInstructions()` now returns `List<Instruction>` instead of `Iterable<Instruction>`.
 +* Added various `TraversalStrategy` registrations with `GryoMapper`.
 +* Fixed a naming mistake in Gremlin-Python: `IdentityRemoveStrategy` is now called `IdentityRemovalStrategy`.
 +* Added `TranslationStrategy` test infrastructure that verifies `Bytecode` generated from a translation is equal to the original `Bytecode`.
 +* Moved `NumberHelper` into the `org.apache.tinkerpop.gremlin.util` package.
 +* Added `Pop.mixed` instead of using `null` to represent such semantics.
 +* `select()`-step now defaults to using `Pop.last` instead of `Pop.mixed`.
 +* Added `gremlin-io-test` module to validate IO formats.
 +* `RequestMessage` and `ResponseMessage` are now registered with `GryoMapper` as part of the TinkerPop range of type identifiers.
 +* Removed previously deprecated `Console` constructor that took a `String` as an argument from `gremlin-console`.
 +* Removed previously deprecated `ConcurrentBindings` from `gremlin-groovy`.
 +* Removed previously deprecated `ScriptExecutor` from `gremlin-groovy`.
 +* Removed previously deprecated `SandboxExtension` from `gremlin-groovy`.
 +* Removed previously deprecated `GremlinGroovyScriptEngine` constructor that took `ImportCustomizerProvider` as an argument from `gremlin-groovy`.
 +* Removed previously deprecated `GremlinGroovyScriptEngine#plugins()` from `gremlin-groovy`.
 +* Added `OptionalStep` for use with `optional()` to better handle issues associated with branch side-effects.
 +* `UnfoldStep` now supports unfolding of arrays.
 +* Removed all performance tests that were not part of `gremlin-benchmark`.
 +* Removed dependency on `junit-benchmarks` and it's related reference to `h2`.
 +* Moved the source for the "home page" into the repository under `/site` so that it easier to accept contributions.
 +* Added `UnshadedKryoShimService` as the new default serializer model for `SparkGraphComputer`.
 +* `GryoRegistrator` is more efficient than the previous `GryoSerializer` model in `SparkGraphComputer`.
 +* Added support for `IoRegistry` custom serialization in Spark/Giraph and provided a general `hadoop-gremlin` test suite.
 +* Replaced term `REST` with `HTTP` to remove any confusion as to the design of the API.
 +* Moved `gremlin-benchmark` under `gremlin-tools` module.
 +* Added `gremlin-tools` and its submodule `gremlin-coverage`.
 +* Removed `tryRandomCommit()` from `AbstractGremlinTest`.
 +* Changed `gremlin-benchmark` system property for the report location to `benchmarkReportDir` for consistency.
 +* Added SysV and systemd init scripts.
 +* `GraphTraversal.valueMap(includeTokens,propertyKeys...)` now returns a `Map<Object,E>` since keys could be `T.id` or `T.label`.
 +* Added `skip(long)` and `skip((Scope,long)` which call the `range(low,high)` equivalents with -1 as the high.
 +* Added Kerberos authentication to `gremlin-server` for websockets and nio transport.
 +* Added audit logging of authenticated users and gremlin queries to `gremlin-server`.
 +
 +==== Bugs
 +
 +* TINKERPOP-1211 UnfoldStep should unfold arrays. *(breaking)*
 +* TINKERPOP-1426 GryoSerializer should implement Java serialization interface
 +* TINKERPOP-1465 Remove deprecated newSaslNegotiator *(breaking)*
 +* TINKERPOP-1483 PropertyMapStep returns Map<String,E> but puts non String keys in it!
 +* TINKERPOP-1520 Difference between 'has' step generated graphson2.0 in java and python glv implementation
 +* TINKERPOP-1533 Storage and IoRegistry
 +* TINKERPOP-1597 PathRetractionStrategy messing up certain traversals
 +* TINKERPOP-1635 gremlin-python: Duplicate serialization of element property in PropertySerializer
 +* TINKERPOP-1658 Graphson2 map keys are serialised as strings
 +* TINKERPOP-1716 Traversal strategies are not applied with remote in Gremlin Console
 +
 +==== Improvements
 +
 +* TINKERPOP-832 Remove deprecated addV/E/InE/OutE methods *(breaking)*
 +* TINKERPOP-833 Remove deprecated GremlinGroovyScriptEngine constructor and plugins() *(breaking)*
 +* TINKERPOP-834 Remove deprecated sack() method *(breaking)*
 +* TINKERPOP-880 Remove deprecated GroupStepV3d0 and GroupSideEffectStepV3d0 *(breaking)*
 +* TINKERPOP-929 Remove Deprecated TinkerGraph public static methods. *(breaking)*
 +* TINKERPOP-980 Add a service script or daemon mode in the distribution *(breaking)*
 +* TINKERPOP-999 ServerGremlinExecutor construction need not use generics for ExecutorService *(breaking)*
 +* TINKERPOP-1004 Make Transaction.commit() failures consistent across implementations. *(breaking)*
 +* TINKERPOP-1010 Remove deprecated credentialsDbLocation for SimpleAuthenticator *(breaking)*
 +* TINKERPOP-1024 Remove deprecated tryRandomCommit() *(breaking)*
 +* TINKERPOP-1028 Remove deprecated ConnectionPoolSettings session settings *(breaking)*
 +* TINKERPOP-1040 Remove deprecated SandboxExtension *(breaking)*
 +* TINKERPOP-1046 Remove deprecated Gremlin Server handler implementations *(breaking)*
 +* TINKERPOP-1049 Remove deprecated error meter member variables in Gremlin Server handlers *(breaking)*
 +* TINKERPOP-1094 Remove deprecated VertexPropertyFeatures.FEATURE_ADD_PROPERTY *(breaking)*
 +* TINKERPOP-1116 Some anonymous traversal steps can be hard typed. *(breaking)*
 +* TINKERPOP-1130 Each release should store Kryo/GraphSON/GraphML versions to ensure future compatibility *(breaking)*
 +* TINKERPOP-1142 Remove deprecated valueIncr, valueDecr, keyIncr, keyDecr. *(breaking)*
 +* TINKERPOP-1169 Remove deprecated TraversalScriptFunction and TraversalScriptHelper *(breaking)*
 +* TINKERPOP-1170 Remove deprecated ConfigurationTraversal. *(breaking)*
 +* TINKERPOP-1171 Remove deprecated TraversalSource.Builder *(breaking)*
 +* TINKERPOP-1235 Remove deprecated ProcessPerformanceSuite and TraversalPerformanceTest *(breaking)*
 +* TINKERPOP-1275 Remove deprecated max setting for :remote *(breaking)*
 +* TINKERPOP-1283 Remove deprecated ScriptExecutor *(breaking)*
 +* TINKERPOP-1289 Remove deprecated ConnectiveP, AndP, and OrP constructors. *(breaking)*
 +* TINKERPOP-1291 Remove deprecated mapValues and mapKeys methods *(breaking)*
 +* TINKERPOP-1313 Rename RangeByIsCountStrategy *(breaking)*
 +* TINKERPOP-1316 Remove deprecated constructor from GryoMessageSerializers *(breaking)*
 +* TINKERPOP-1327 Bring GryoRegistrator to the forefront and deprecate GryoSerializer *(breaking)*
 +* TINKERPOP-1363 Cleanup Docker build script for next major release *(breaking)*
 +* TINKERPOP-1369 Replace REST API with HTTP API
 +* TINKERPOP-1389 Support Spark 2.0.0
 +* TINKERPOP-1399 NumberHelper needs to go into util and have a private constructor *(breaking)*
 +* TINKERPOP-1404 Path/label optimization
 +* TINKERPOP-1408 Remove Deprecated Io.Builder.registry() *(breaking)*
 +* TINKERPOP-1414 Change default GraphSON version to 3.0 *(breaking)*
 +* TINKERPOP-1420 Remove deprecated ConcurrentBindings in gremlin-groovy *(breaking)*
 +* TINKERPOP-1421 Remove deprecated ControlOps *(breaking)*
 +* TINKERPOP-1427 GraphSON 3.0 needs collection types and consistent number typing.
 +* TINKERPOP-1443 Use an API checker during build
 +* TINKERPOP-1445 Large nested VertexProperties and Properties do not get printed well
 +* TINKERPOP-1454 Create Serializers for Graph objects in Gremlin-Python
 +* TINKERPOP-1481 Remove deprecated reconnectInitialDelay in Java driver *(breaking)*
 +* TINKERPOP-1485 Move source for TinkerPop site to source code repo
 +* TINKERPOP-1506 Optional/Coalesce should not allow sideEffect traversals.
 +* TINKERPOP-1514 Restructure for gremlin-tools module *(breaking)*
 +* TINKERPOP-1524 Bytecode.getXXXInstructions should return a List, not Iterable.
 +* TINKERPOP-1526 Remove deprecated Session kill() overloads *(breaking)*
 +* TINKERPOP-1536 Include GLVs in Docker build
 +* TINKERPOP-1541 Select should default to Pop.last semantics *(breaking)*
 +* TINKERPOP-1549 Implement skip()
 +* TINKERPOP-1550 Make Graphite and Ganglia optional dependencies
 +* TINKERPOP-1563 Remove deprecated getInstance() methods *(breaking)*
 +* TINKERPOP-1565 Setup GraphSON 3.0
 +* TINKERPOP-1566 Kerberos authentication for gremlin-server
 +* TINKERPOP-1574 Get rid of untyped GraphSON in 3.0
 +* TINKERPOP-1603 Remove support for SASL byte array in protocol *(breaking)*
 +* TINKERPOP-1612 Remove gremlin-groovy-test module *(breaking)*
 +* TINKERPOP-1621 Remove deprecated GremlnPlugin and related infrastructure *(breaking)*
 +* TINKERPOP-1622 Remove deprecated G functions in gremlin-groovy *(breaking)*
 +* TINKERPOP-1651 Remove deprecated gremlin.sh init syntax *(breaking)*
 +* TINKERPOP-1686 Make TraversalMetrics thread safe *(breaking)*
 +* TINKERPOP-1698 Gryo 3.0
 +* TINKERPOP-1699 Remove deprecated userMapperFromGraph *(breaking)*
 +* TINKERPOP-1700 Remove deprecated embedTypes option
 +* TINKERPOP-1706 Remove deprecated ScriptEngineCache and related dead code *(breaking)*
 +* TINKERPOP-1715 Bump to Spark 2.2
 +* TINKERPOP-1719 Remove deprecated Traversal related code *(breaking)*
 +* TINKERPOP-1720 Remove deprecated Hadoop code *(breaking)*
 +* TINKERPOP-1721 Remove deprecated Bindings related code *(breaking)*
 +* TINKERPOP-1724 Remove deprecated ScriptElementFactory
 +* TINKERPOP-1729 Remove deprecated select steps.
 +* TINKERPOP-1740 Add vertex parameter overload to to() and from()
 +* TINKERPOP-1747 Streamline inheritance for gremlin-python GraphSON serializer classes
 +
  == TinkerPop 3.2.0 (Nine Inch Gremlins)
  
  image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=185]
@@@ -275,7 -26,7 +275,8 @@@
  * Added the "Kitchen Sink" test data set.
  * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
  * Delayed setting of the request identifier until `RequestMessage` construction by the builder.
 +* `ReferenceElement` avoids `UnsupportedOperationException` handling in construction thus improving performance.
+ * Improved error messaging for failed serialization and deserialization of request/response messages.
  * Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.
  * Added `IndexedTraverserSet` which indexes on the value of a `Traverser` thus improving performance when used.
  * Utilized `IndexedTraverserSet` in `TraversalVertexProgram` to avoid extra iteration when doing `Vertex` lookups.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c079598/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c079598/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
----------------------------------------------------------------------