Details
Description
org.apache.cassandra.cql3.Json uses a shared instance of JsonStringEncoder which is not thread safe (see 1), while JsonStringEncoder#getInstance() should be used (see 2).
As a consequence, concurrent select JSON queries often produce wrong (sometimes unreadable) results.
1. http://grepcode.com/file/repo1.maven.org/maven2/org.codehaus.jackson/jackson-core-asl/1.9.2/org/codehaus/jackson/io/JsonStringEncoder.java
2. http://grepcode.com/file/repo1.maven.org/maven2/org.codehaus.jackson/jackson-core-asl/1.9.2/org/codehaus/jackson/io/JsonStringEncoder.java#JsonStringEncoder.getInstance%28%29
Attachments
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-11570 Concurrent execution of prepared statement returns invalid JSON as result
- Resolved
-
CASSANDRA-11923 select json not stable, sometimes wrong data mapping returned from cassandra.
- Resolved