Skip to content

Commit 517c851

Browse files
committedJun 23, 2020
Cover more cases for the invalid input
1 parent fa6ad22 commit 517c851

File tree

118 files changed

+170
-170
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+170
-170
lines changed
 

‎jsoniter-scala-benchmark/shared/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/benchmark/JacksonSerDesers.scala

+6-15
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.github.plokhotnyuk.jsoniter_scala.benchmark
33
import java.util.concurrent.ConcurrentHashMap
44

55
import com.fasterxml.jackson.annotation.JsonInclude.Include
6-
import com.fasterxml.jackson.core.JsonToken._
76
import com.fasterxml.jackson.core.util.{DefaultIndenter, DefaultPrettyPrinter}
87
import com.fasterxml.jackson.core.{JsonFactory, JsonFactoryBuilder, JsonGenerator, JsonParser}
98
import com.fasterxml.jackson.databind._
@@ -69,18 +68,14 @@ object JacksonSerDesers {
6968
class ByteArraySerializer extends StdSerializer[Array[Byte]](classOf[Array[Byte]]) {
7069
override def serialize(value: Array[Byte], gen: JsonGenerator, provider: SerializerProvider): Unit = {
7170
gen.writeStartArray()
72-
if (!isEmpty(provider, value)) {
73-
val l = value.length
74-
var i = 0
75-
while (i < l) {
76-
gen.writeNumber(value(i))
77-
i += 1
78-
}
71+
val l = value.length
72+
var i = 0
73+
while (i < l) {
74+
gen.writeNumber(value(i))
75+
i += 1
7976
}
8077
gen.writeEndArray()
8178
}
82-
83-
override def isEmpty(spro: SerializerProvider, value: Array[Byte]): Boolean = value.isEmpty
8479
}
8580

8681
class StringifiedBooleanSerializer extends JsonSerializer[Boolean] {
@@ -117,9 +112,5 @@ class SuitADTDeserializer extends JsonDeserializer[SuitADT] {
117112
"Clubs" -> Clubs)
118113

119114
override def deserialize(jp: JsonParser, ctxt: DeserializationContext): SuitADT =
120-
if (jp.getCurrentToken != VALUE_STRING) ctxt.handleUnexpectedToken(classOf[SuitADT], jp).asInstanceOf[SuitADT]
121-
else {
122-
val s = jp.getValueAsString
123-
suite.getOrElse(s, ctxt.handleWeirdStringValue(classOf[SuitADT], s, "illegal value").asInstanceOf[SuitADT])
124-
}
115+
Try(suite(jp.getValueAsString)).getOrElse(ctxt.handleUnexpectedToken(classOf[SuitADT], jp).asInstanceOf[SuitADT])
125116
}

‎jsoniter-scala-benchmark/shared/src/test/scala/com/github/plokhotnyuk/jsoniter_scala/benchmark/ADTReadingSpec.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.github.plokhotnyuk.jsoniter_scala.benchmark
22

33
class ADTReadingSpec extends BenchmarkSpecBase {
4-
private def benchmark = new ADTReading
4+
def benchmark = new ADTReading
55

66
"ADTReading" should {
77
"read properly" in {
@@ -17,7 +17,7 @@ class ADTReadingSpec extends BenchmarkSpecBase {
1717
}
1818
"fail on invalid input" in {
1919
val b = benchmark
20-
b.jsonBytes(0) = 'x'.toByte
20+
b.jsonBytes(2) = 'x'.toByte
2121
intercept[Throwable](b.avSystemGenCodec())
2222
intercept[Throwable](b.borer())
2323
intercept[Throwable](b.circe())

0 commit comments

Comments
 (0)
Please sign in to comment.