Projects >> jedis >>37a3c7b8359a456804947ebde546c7e096ef2176

Chunk
Conflicting content
import java.util.Map.Entry;
import java.util.Set;

<<<<<<< HEAD
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

public class JedisCluster implements JedisCommands, BasicCommands {
=======
public class JedisCluster implements JedisCommands, BasicCommands, Closeable {
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800
    public static final short HASHSLOTS = 16384;
    private static final int DEFAULT_TIMEOUT = 1;
    private static final int DEFAULT_MAX_REDIRECTIONS = 5;
Solution content
import java.util.Map.Entry;
import java.util.Set;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

public class JedisCluster implements JedisCommands, BasicCommands, Closeable {
    public static final short HASHSLOTS = 16384;
    private static final int DEFAULT_TIMEOUT = 1;
    private static final int DEFAULT_MAX_REDIRECTIONS = 5;
File
JedisCluster.java
Developer's decision
Combination
Kind of conflict
Class signature
Import
Chunk
Conflicting content
package redis.clients.jedis;

<<<<<<< HEAD
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import java.util.*;

=======
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800
import redis.clients.jedis.exceptions.JedisConnectionException;

import java.util.Map;
Solution content
package redis.clients.jedis;

import redis.clients.jedis.exceptions.JedisConnectionException;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import java.util.Map;
File
JedisClusterConnectionHandler.java
Developer's decision
Combination
Kind of conflict
Import
Chunk
Conflicting content
import java.util.Random;
import java.util.Set;

<<<<<<< HEAD
    protected Map nodes = new HashMap();
    protected Map slots = new HashMap();
    final protected GenericObjectPoolConfig poolConfig;
=======
import static redis.clients.jedis.JedisClusterInfoCache.getNodeKey;

public abstract class JedisClusterConnectionHandler {
    protected JedisClusterInfoCache cache = new JedisClusterInfoCache();
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800

    abstract Jedis getConnection();
Solution content
import java.util.Random;
import java.util.Set;

import static redis.clients.jedis.JedisClusterInfoCache.getNodeKey;

public abstract class JedisClusterConnectionHandler {
    protected final JedisClusterInfoCache cache;

    abstract Jedis getConnection();
File
JedisClusterConnectionHandler.java
Developer's decision
Manual
Kind of conflict
Attribute
Class signature
Import
Method invocation
Chunk
Conflicting content
	}

	for (HostAndPort node : startNodes) {
<<<<<<< HEAD
	    setNodeIfNotExist(node);
	}
    }

    private void discoverClusterNodesAndSlots(Jedis jedis) {
        String localNodes = jedis.clusterNodes();
        for (String nodeInfo : localNodes.split("\n")) {
            ClusterNodeInformation clusterNodeInfo = nodeInfoParser.parse(
                    nodeInfo, new HostAndPort(jedis.getClient().getHost(),
                    jedis.getClient().getPort()));

            HostAndPort targetNode = clusterNodeInfo.getNode();
            setNodeIfNotExist(targetNode);
            assignSlotsToNode(clusterNodeInfo.getAvailableSlots(), targetNode);
        }
    }

    public void assignSlotToNode(int slot, HostAndPort targetNode) {
	JedisPool targetPool = nodes.get(getNodeKey(targetNode));

	if (targetPool == null) {
	    setNodeIfNotExist(targetNode);
	    targetPool = nodes.get(getNodeKey(targetNode));
=======
	    cache.setNodeIfNotExist(node);
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800
	}
    }
Solution content
	}

	for (HostAndPort node : startNodes) {
	    cache.setNodeIfNotExist(node);
	}
    }
File
JedisClusterConnectionHandler.java
Developer's decision
Version 2
Kind of conflict
If statement
Method declaration
Method invocation
Method signature
Variable
Chunk
Conflicting content
	return (JedisPool) (nodeArray[new Random().nextInt(nodeArray.length)]);
    }

<<<<<<< HEAD
    protected String getNodeKey(HostAndPort hnp) {
	return hnp.getHost() + ":" + hnp.getPort();
    }

    protected String getNodeKey(Client client) {
	return client.getHost() + ":" + client.getPort();
    }

    private void setNodeIfNotExist(HostAndPort node) {
	String nodeKey = getNodeKey(node);
	if (nodes.containsKey(nodeKey))
	    return;

	JedisPool nodePool = new JedisPool(poolConfig, node.getHost(), node.getPort());
	nodes.put(nodeKey, nodePool);
    }
=======
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800
}
Solution content
	return (JedisPool) (nodeArray[new Random().nextInt(nodeArray.length)]);
    }

}
File
JedisClusterConnectionHandler.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Chunk
Conflicting content
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
<<<<<<< HEAD
import redis.clients.jedis.exceptions.*;
=======
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.exceptions.JedisAskDataException;
import redis.clients.jedis.exceptions.JedisClusterException;
import redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException;
import redis.clients.jedis.exceptions.JedisConnectionException;
import redis.clients.jedis.exceptions.JedisException;
import redis.clients.jedis.exceptions.JedisMovedDataException;
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800
import redis.clients.jedis.tests.utils.JedisClusterTestUtil;
import redis.clients.util.JedisClusterCRC16;
Solution content
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.exceptions.JedisAskDataException;
import redis.clients.jedis.exceptions.JedisClusterException;
import redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException;
import redis.clients.jedis.exceptions.JedisConnectionException;
import redis.clients.jedis.exceptions.JedisException;
import redis.clients.jedis.exceptions.JedisMovedDataException;
import redis.clients.jedis.tests.utils.JedisClusterTestUtil;
import redis.clients.util.JedisClusterCRC16;
File
JedisClusterTest.java
Developer's decision
Version 2
Kind of conflict
Import
Chunk
Conflicting content
	node2.clusterSetSlotStable(slot51);
	assertEquals("foo", jc.get("51"));
    }
<<<<<<< HEAD

    @Test(expected = JedisConnectionException.class)
    public void testIfPoolConfigAppliesToClusterPools() {
        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
        config.setMaxTotal(0);
        config.setMaxWaitMillis(2000);
        Set jedisClusterNode = new HashSet();
        jedisClusterNode.add(new HostAndPort("127.0.0.1", 7379));
        JedisCluster jc = new JedisCluster(jedisClusterNode, config);
        jc.set("52", "poolTestValue");
    }

=======
    
    @Test
    public void testCloseable() {
	Set jedisClusterNode = new HashSet();
	jedisClusterNode.add(new HostAndPort(nodeInfo1.getHost(), nodeInfo1.getPort()));
	
	JedisCluster jc = null;
	try {
	    jc = new JedisCluster(jedisClusterNode);
	    jc.set("51", "foo");
	} finally {
	    if (jc != null) {
		jc.close();
	    }
	}

	Iterator poolIterator = jc.getClusterNodes().values().iterator();
	while (poolIterator.hasNext()) {
	    JedisPool pool = poolIterator.next();
	    try {
		pool.getResource();
		fail("JedisCluster's internal pools should be already destroyed");
	    } catch (JedisConnectionException e) {
		// ok to go...
	    }
	}
    }
    
>>>>>>> fc594db9a3d0027604e44b9ac979d1f35cc61800
    private static String getNodeServingSlotRange(String infoOutput) {
	// f4f3dc4befda352a4e0beccf29f5e8828438705d 127.0.0.1:7380 master - 0 1394372400827 0 connected 5461-10922
	for (String infoLine : infoOutput.split("\n")) {
Solution content
	node2.clusterSetSlotStable(slot51);
	assertEquals("foo", jc.get("51"));
    }

    @Test(expected = JedisConnectionException.class)
    public void testIfPoolConfigAppliesToClusterPools() {
        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
        config.setMaxTotal(0);
        config.setMaxWaitMillis(2000);
        Set jedisClusterNode = new HashSet();
        jedisClusterNode.add(new HostAndPort("127.0.0.1", 7379));
        JedisCluster jc = new JedisCluster(jedisClusterNode, config);
        jc.set("52", "poolTestValue");
    }

    @Test
    public void testCloseable() {
	Set jedisClusterNode = new HashSet();
	jedisClusterNode.add(new HostAndPort(nodeInfo1.getHost(), nodeInfo1.getPort()));
	
	JedisCluster jc = null;
	try {
	    jc = new JedisCluster(jedisClusterNode);
	    jc.set("51", "foo");
	} finally {
	    if (jc != null) {
		jc.close();
	    }
	}

	Iterator poolIterator = jc.getClusterNodes().values().iterator();
	while (poolIterator.hasNext()) {
	    JedisPool pool = poolIterator.next();
	    try {
		pool.getResource();
		fail("JedisCluster's internal pools should be already destroyed");
	    } catch (JedisConnectionException e) {
		// ok to go...
	    }
	}
    }
    
    private static String getNodeServingSlotRange(String infoOutput) {
	// f4f3dc4befda352a4e0beccf29f5e8828438705d 127.0.0.1:7380 master - 0 1394372400827 0 connected 5461-10922
	for (String infoLine : infoOutput.split("\n")) {
File
JedisClusterTest.java
Developer's decision
Concatenation
Kind of conflict
Annotation
Method declaration