[infinispan-commits] Infinispan SVN: r1758 - in trunk/server: core/src/main/scala/org/infinispan/server/core/transport/netty and 2 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Fri May 7 10:23:44 EDT 2010


Author: galder.zamarreno at jboss.com
Date: 2010-05-07 10:23:44 -0400 (Fri, 07 May 2010)
New Revision: 1758

Modified:
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala
Log:
Hashcodes should be read/writen as fixed length integers and not variable ones.

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala	2010-05-07 12:45:06 UTC (rev 1757)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala	2010-05-07 14:23:44 UTC (rev 1758)
@@ -23,6 +23,7 @@
     */
    def readString: String
    def readLong: Long
+   def readInt: Int
    def writeByte(value: Byte)
    def writeBytes(src: Array[Byte])
 
@@ -40,6 +41,7 @@
     */
    def writeString(msg: String)
    def writeLong(l: Long)
+   def writeInt(i: Int)
 
    def getUnderlyingChannelBuffer: AnyRef
 }
\ No newline at end of file

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala	2010-05-07 12:45:06 UTC (rev 1757)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala	2010-05-07 14:23:44 UTC (rev 1758)
@@ -32,6 +32,7 @@
     */
    override def readString: String = new String(readRangedBytes, "UTF8")
    override def readLong: Long = buffer.readLong
+   override def readInt: Int = buffer.readInt
    override def writeByte(value: Byte) = buffer.writeByte(value)
    override def writeBytes(src: Array[Byte]) = buffer.writeBytes(src)
 
@@ -52,6 +53,7 @@
     */
    override def writeString(msg: String) = writeRangedBytes(msg.getBytes())
    override def writeLong(l: Long) = buffer.writeLong(l)
+   override def writeInt(i: Int) = buffer.writeInt(i)
 
    override def getUnderlyingChannelBuffer: AnyRef = buffer
 

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala	2010-05-07 12:45:06 UTC (rev 1757)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala	2010-05-07 14:23:44 UTC (rev 1758)
@@ -94,7 +94,7 @@
       t.view.members.foreach{address =>
          buffer.writeString(address.host)
          buffer.writeUnsignedShort(address.port)
-         buffer.writeUnsignedInt(0) // Address' hash id
+         buffer.writeInt(0) // Address' hash id
       }
    }
 
@@ -115,16 +115,16 @@
          val cachedHashId = address.hashIds.get(r.cacheName)
          val hashId = consistentHash.getHashId(address.clusterAddress)
          val newAddress =
-             // If distinct or not present, cached hash id needs updating
-             if (cachedHashId == None || cachedHashId.get != hashId) {
-                if (!hashIdUpdateRequired) hashIdUpdateRequired = true
-                val newHashIds = address.hashIds + (r.cacheName -> hashId)
-                address.copy(hashIds = newHashIds)
-             } else {
-                address
-             }
+            // If distinct or not present, cached hash id needs updating
+            if (cachedHashId == None || cachedHashId.get != hashId) {
+               if (!hashIdUpdateRequired) hashIdUpdateRequired = true
+               val newHashIds = address.hashIds + (r.cacheName -> hashId)
+               address.copy(hashIds = newHashIds)
+            } else {
+               address
+            }
          updateMembers += newAddress
-         buffer.writeUnsignedInt(hashId) // Address' hash id
+         buffer.writeInt(hashId) // Address' hash id
       }
       // At least a hash id had to be updated in the view. Take the view copy and distribute it around the cluster
       if (hashIdUpdateRequired) {

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala	2010-05-07 12:45:06 UTC (rev 1757)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala	2010-05-07 14:23:44 UTC (rev 1758)
@@ -290,7 +290,7 @@
                for (i <- 0 until numberClusterMembers) {
                   val host = buf.readString
                   val port = buf.readUnsignedShort
-                  val hashId = buf.readUnsignedInt
+                  val hashId = buf.readInt
                   viewArray(i) = TopologyAddress(host, port, Map(op.cacheName -> hashId), null)
                }
                Some(HashDistAwareResponse(TopologyView(topologyId, viewArray.toList), numOwners, hashFunction, hashSpace))



More information about the infinispan-commits mailing list