Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cassandra 15896 3.11 #689

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/java/org/apache/cassandra/db/marshal/AbstractType.java
Expand Up @@ -26,6 +26,7 @@
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -153,7 +154,7 @@ public String getString(ByteBuffer bytes)
*/
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return '"' + getSerializer().deserialize(buffer).toString() + '"';
return '"' + Objects.toString(getSerializer().deserialize(buffer), "") + '"';
}

/* validate that the byte array is a valid sequence for the type we are supposed to be comparing */
Expand Down
7 changes: 4 additions & 3 deletions src/java/org/apache/cassandra/db/marshal/DecimalType.java
Expand Up @@ -19,6 +19,7 @@

import java.math.BigDecimal;
import java.nio.ByteBuffer;
import java.util.Objects;

import org.apache.cassandra.cql3.CQL3Type;
import org.apache.cassandra.cql3.Constants;
Expand Down Expand Up @@ -72,9 +73,9 @@ public Term fromJSONObject(Object parsed) throws MarshalException
{
try
{
return new Constants.Value(getSerializer().serialize(new BigDecimal(parsed.toString())));
return new Constants.Value(fromString(Objects.toString(parsed)));
}
catch (NumberFormatException exc)
catch (NumberFormatException | MarshalException exc)
{
throw new MarshalException(String.format("Value '%s' is not a valid representation of a decimal value", parsed));
}
Expand All @@ -83,7 +84,7 @@ public Term fromJSONObject(Object parsed) throws MarshalException
@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return getSerializer().deserialize(buffer).toString();
return Objects.toString(getSerializer().deserialize(buffer), "\"\"");
}

public CQL3Type asCQL3Type()
Expand Down
2 changes: 2 additions & 0 deletions src/java/org/apache/cassandra/db/marshal/DoubleType.java
Expand Up @@ -87,6 +87,8 @@ public Term fromJSONObject(Object parsed) throws MarshalException
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
Double value = getSerializer().deserialize(buffer);
if (value == null)
return "\"\"";
// JSON does not support NaN, Infinity and -Infinity values. Most of the parser convert them into null.
if (value.isNaN() || value.isInfinite())
return "null";
Expand Down
2 changes: 2 additions & 0 deletions src/java/org/apache/cassandra/db/marshal/FloatType.java
Expand Up @@ -86,6 +86,8 @@ public Term fromJSONObject(Object parsed) throws MarshalException
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
Float value = getSerializer().deserialize(buffer);
if (value == null)
return "\"\"";
// JSON does not support NaN, Infinity and -Infinity values. Most of the parser convert them into null.
if (value.isNaN() || value.isInfinite())
return "null";
Expand Down
Expand Up @@ -74,10 +74,15 @@ public Term fromJSONObject(Object parsed) throws MarshalException
}
}

private String toString(InetAddress inet)
{
return inet != null ? inet.getHostAddress() : "";
}

@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return '"' + getSerializer().deserialize(buffer).getHostAddress() + '"';
return '"' + toString(getSerializer().deserialize(buffer)) + '"';
}

public CQL3Type asCQL3Type()
Expand Down
3 changes: 2 additions & 1 deletion src/java/org/apache/cassandra/db/marshal/Int32Type.java
Expand Up @@ -18,6 +18,7 @@
package org.apache.cassandra.db.marshal;

import java.nio.ByteBuffer;
import java.util.Objects;

import org.apache.cassandra.cql3.CQL3Type;
import org.apache.cassandra.cql3.Constants;
Expand Down Expand Up @@ -98,7 +99,7 @@ public Term fromJSONObject(Object parsed) throws MarshalException
@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return getSerializer().deserialize(buffer).toString();
return Objects.toString(getSerializer().deserialize(buffer), "\"\"");
}

public CQL3Type asCQL3Type()
Expand Down
3 changes: 2 additions & 1 deletion src/java/org/apache/cassandra/db/marshal/IntegerType.java
Expand Up @@ -19,6 +19,7 @@

import java.math.BigInteger;
import java.nio.ByteBuffer;
import java.util.Objects;

import org.apache.cassandra.cql3.CQL3Type;
import org.apache.cassandra.cql3.Constants;
Expand Down Expand Up @@ -166,7 +167,7 @@ public Term fromJSONObject(Object parsed) throws MarshalException
@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return getSerializer().deserialize(buffer).toString();
return Objects.toString(getSerializer().deserialize(buffer), "\"\"");
}

@Override
Expand Down
3 changes: 2 additions & 1 deletion src/java/org/apache/cassandra/db/marshal/LongType.java
Expand Up @@ -18,6 +18,7 @@
package org.apache.cassandra.db.marshal;

import java.nio.ByteBuffer;
import java.util.Objects;

import org.apache.cassandra.cql3.CQL3Type;
import org.apache.cassandra.cql3.Constants;
Expand Down Expand Up @@ -100,7 +101,7 @@ public Term fromJSONObject(Object parsed) throws MarshalException
@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return getSerializer().deserialize(buffer).toString();
return Objects.toString(getSerializer().deserialize(buffer), "\"\"");
}

@Override
Expand Down
3 changes: 2 additions & 1 deletion src/java/org/apache/cassandra/db/marshal/ShortType.java
Expand Up @@ -18,6 +18,7 @@
package org.apache.cassandra.db.marshal;

import java.nio.ByteBuffer;
import java.util.Objects;

import org.apache.cassandra.cql3.CQL3Type;
import org.apache.cassandra.cql3.Constants;
Expand Down Expand Up @@ -78,7 +79,7 @@ public Term fromJSONObject(Object parsed) throws MarshalException
@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return getSerializer().deserialize(buffer).toString();
return Objects.toString(getSerializer().deserialize(buffer), "\"\"");
}

@Override
Expand Down
7 changes: 6 additions & 1 deletion src/java/org/apache/cassandra/db/marshal/TimestampType.java
Expand Up @@ -88,10 +88,15 @@ public Term fromJSONObject(Object parsed) throws MarshalException
}
}

private String toString(Date date)
{
return date != null ? TimestampSerializer.getJsonDateFormatter().format(date) : "";
}

@Override
public String toJSONString(ByteBuffer buffer, ProtocolVersion protocolVersion)
{
return '"' + TimestampSerializer.getJsonDateFormatter().format(TimestampSerializer.instance.deserialize(buffer)) + '"';
return '"' + toString(TimestampSerializer.instance.deserialize(buffer)) + '"';
}

@Override
Expand Down