From 5dc92dc524716a5f5529ce7418ff4753a960ed75 Mon Sep 17 00:00:00 2001 From: Himanshu Soni Date: Fri, 16 Feb 2018 00:10:59 +0530 Subject: [PATCH] converted key to string to be safeside --- lib/partitioner.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/partitioner.js b/lib/partitioner.js index 5feae553..471db76f 100644 --- a/lib/partitioner.js +++ b/lib/partitioner.js @@ -3,9 +3,9 @@ var util = require('util'); var _ = require('lodash'); -var Partitioner = function () {}; +var Partitioner = function () { }; -var DefaultPartitioner = function () {}; +var DefaultPartitioner = function () { }; util.inherits(DefaultPartitioner, Partitioner); DefaultPartitioner.prototype.getPartition = function (partitions) { @@ -23,27 +23,29 @@ util.inherits(CyclicPartitioner, Partitioner); CyclicPartitioner.prototype.getPartition = function (partitions) { if (_.isEmpty(partitions)) return 0; - return partitions[ this.c++ % partitions.length ]; + return partitions[this.c++ % partitions.length]; }; -var RandomPartitioner = function () {}; +var RandomPartitioner = function () { }; util.inherits(RandomPartitioner, Partitioner); RandomPartitioner.prototype.getPartition = function (partitions) { return partitions[Math.floor(Math.random() * partitions.length)]; }; -var KeyedPartitioner = function () {}; +var KeyedPartitioner = function () { }; util.inherits(KeyedPartitioner, Partitioner); // Taken from oid package (Dan Bornstein) // Copyright The Obvious Corporation. KeyedPartitioner.prototype.hashCode = function (string) { var hash = 0; - var length = string.length; + if (string) { + var length = string.toString().length; - for (var i = 0; i < length; i++) { - hash = ((hash * 31) + string.charCodeAt(i)) & 0x7fffffff; + for (var i = 0; i < length; i++) { + hash = ((hash * 31) + string.charCodeAt(i)) & 0x7fffffff; + } } return (hash === 0) ? 1 : hash;