Skip to content

Commit 39092e0

Browse files
author
DvirDukhan
committed
fixed according to PR. changed connection to context connection even in general queries
1 parent 48329d4 commit 39092e0

File tree

7 files changed

+45
-18
lines changed

7 files changed

+45
-18
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
<dependency>
6363
<groupId>redis.clients</groupId>
6464
<artifactId>jedis</artifactId>
65-
<version>3.1.0-m4</version>
65+
<version>3.1.0-rc</version>
6666
</dependency>
6767
<dependency>
6868
<groupId>org.apache.commons</groupId>

src/main/java/META-INF/MANIFEST.MF

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Manifest-Version: 1.0
2-
Main-Class: com.redislabs.redisgraph.RedisGraphAPI
3-
1+
Manifest-Version: 1.0
2+
Main-Class: com.redislabs.redisgraph.RedisGraph
3+

src/main/java/com/redislabs/redisgraph/graph_entities/GraphEntity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public abstract class GraphEntity {
1616

1717
//members
1818

19-
int id;
20-
final Map<String, Property> propertyMap = new HashMap<>();
19+
protected int id;
20+
protected final Map<String, Property> propertyMap = new HashMap<>();
2121

2222

2323
//setters & getters

src/main/java/com/redislabs/redisgraph/impl/Utils.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
public class Utils {
1818
public static final List<String> dummyList = new ArrayList<>(0);
1919
public static final Map<String, List<String>> dummyMap = new HashMap<>(0);
20+
public static final String compactString = "--COMPACT";
2021

2122

2223

@@ -77,10 +78,23 @@ public static String prepareQuery(String query, Object ...args){
7778
public static String prepareProcedure(String procedure, List<String> args , Map<String, List<String>> kwargs){
7879
args = args.stream().map( s -> Utils.quoteString(s)).collect(Collectors.toList());
7980
StringBuilder queryStringBuilder = new StringBuilder();
80-
queryStringBuilder.append(String.format("CALL %s(%s)", procedure, String.join(",", args)));
81+
queryStringBuilder.append("CALL ").append(procedure).append("(");
82+
int i = 0;
83+
for (; i < args.size() - 1; i++) {
84+
queryStringBuilder.append(args.get(i)).append(",");
85+
}
86+
if (i == args.size()-1) {
87+
queryStringBuilder.append(args.get(i));
88+
}
89+
queryStringBuilder.append(")");
8190
List<String> kwargsList = kwargs.getOrDefault("y", null);
8291
if(kwargsList != null){
83-
queryStringBuilder.append(String.join(",", kwargsList));
92+
i = 0;
93+
for (; i < kwargsList.size() - 1; i++) {
94+
queryStringBuilder.append(kwargsList.get(i)).append(",");
95+
96+
}
97+
queryStringBuilder.append(kwargsList.get(i));
8498
}
8599
return queryStringBuilder.toString();
86100
}

src/main/java/com/redislabs/redisgraph/impl/api/ContextedRedisGraph.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.redislabs.redisgraph.RedisGraphContexted;
44
import com.redislabs.redisgraph.ResultSet;
5+
import com.redislabs.redisgraph.impl.Utils;
56
import com.redislabs.redisgraph.impl.graph_cache.RedisGraphCaches;
67
import com.redislabs.redisgraph.impl.resultset.ResultSetImpl;
78
import redis.clients.jedis.Client;
@@ -45,7 +46,14 @@ protected Jedis getConnection() {
4546
@Override
4647
protected ResultSet sendQuery(String graphId, String preparedQuery) {
4748
Jedis conn = getConnection();
48-
List<Object> rawResponse = (List<Object>) conn.sendCommand(RedisGraphCommand.QUERY, graphId, preparedQuery, "--COMPACT");
49+
List<Object> rawResponse;
50+
try {
51+
rawResponse = (List<Object>) conn.sendCommand(RedisGraphCommand.QUERY, graphId, preparedQuery, Utils.compactString);
52+
}
53+
catch (Exception e) {
54+
conn.close();
55+
throw e;
56+
}
4957
return new ResultSetImpl(rawResponse, this, graphId, caches.getGraphCache(graphId));
5058
}
5159

@@ -98,7 +106,15 @@ public String unwatch() {
98106
*/
99107
@Override
100108
public String deleteGraph(String graphId) {
101-
Object response = getConnection().sendCommand(RedisGraphCommand.DELETE, graphId);
109+
Jedis conn = getConnection();
110+
Object response;
111+
try {
112+
response = conn.sendCommand(RedisGraphCommand.DELETE, graphId);
113+
}
114+
catch (Exception e) {
115+
conn.close();
116+
throw e;
117+
}
102118
//clear local state
103119
caches.removeGraphCache(graphId);
104120
return SafeEncoder.encode((byte[]) response);

src/main/java/com/redislabs/redisgraph/impl/api/RedisGraph.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.redislabs.redisgraph.RedisGraphContexted;
44
import com.redislabs.redisgraph.RedisGraphGeneralContext;
55
import com.redislabs.redisgraph.ResultSet;
6+
import com.redislabs.redisgraph.impl.Utils;
67
import com.redislabs.redisgraph.impl.graph_cache.RedisGraphCaches;
78
import com.redislabs.redisgraph.impl.resultset.ResultSetImpl;
89
import redis.clients.jedis.Jedis;
@@ -68,11 +69,10 @@ protected Jedis getConnection() {
6869
*/
6970
@Override
7071
protected ResultSet sendQuery(String graphId, String preparedQuery){
71-
List<Object> rawResponse;
72-
try(Jedis conn = getConnection()){
73-
rawResponse = (List<Object>) conn.sendCommand(RedisGraphCommand.QUERY, graphId, preparedQuery, "--COMPACT");
72+
try (ContextedRedisGraph contextedRedisGraph = new ContextedRedisGraph(getConnection())) {
73+
contextedRedisGraph.setRedisGraphCaches(caches);
74+
return contextedRedisGraph.sendQuery(graphId, preparedQuery);
7475
}
75-
return new ResultSetImpl(rawResponse, this, graphId, caches.getGraphCache(graphId));
7676
}
7777

7878

src/main/java/com/redislabs/redisgraph/impl/graph_cache/GraphCacheList.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,10 @@
1414
*/
1515
class GraphCacheList {
1616

17-
private final Object mutex = new Object();
1817
private final String graphId;
1918
private final String procedure;
2019
private final List<String> data = new CopyOnWriteArrayList<>();
2120

22-
23-
2421
/**
2522
*
2623
* @param graphId - graph id
@@ -39,7 +36,7 @@ public GraphCacheList(String graphId, String procedure) {
3936
*/
4037
public String getCachedData(int index, RedisGraph redisGraph) {
4138
if (index >= data.size()) {
42-
synchronized (mutex){
39+
synchronized (data){
4340
if (index >= data.size()) {
4441
getProcedureInfo(redisGraph);
4542
}

0 commit comments

Comments
 (0)