Skip to content

Commit 9958c03

Browse files
committed
Continue work on stream read capabilities wrt EXACT_FLOATS
1 parent 4c92b34 commit 9958c03

File tree

8 files changed

+61
-15
lines changed

8 files changed

+61
-15
lines changed

avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroParser.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ private Feature(boolean defaultState) {
6868
public boolean enabledIn(int flags) { return (flags & _mask) != 0; }
6969
}
7070

71+
// @since 2.14 - require some overrides
72+
protected final static JacksonFeatureSet<StreamReadCapability> AVRO_READ_CAPABILITIES =
73+
DEFAULT_READ_CAPABILITIES.with(StreamReadCapability.EXACT_FLOATS);
74+
7175
/*
7276
/**********************************************************************
7377
/* Configuration
@@ -125,8 +129,7 @@ public void setCodec(ObjectCodec c) {
125129

126130
@Override // since 2.12
127131
public JacksonFeatureSet<StreamReadCapability> getReadCapabilities() {
128-
// Defaults are fine
129-
return DEFAULT_READ_CAPABILITIES;
132+
return AVRO_READ_CAPABILITIES;
130133
}
131134

132135
/*

avro/src/test/java/com/fasterxml/jackson/dataformat/avro/MapperConfigTest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.ByteArrayOutputStream;
44

55
import com.fasterxml.jackson.core.FormatSchema;
6+
import com.fasterxml.jackson.core.StreamReadCapability;
67
import com.fasterxml.jackson.databind.*;
78

89
public class MapperConfigTest extends AvroTestBase
@@ -40,6 +41,11 @@ public void testParserDefaults() throws Exception
4041
.build();
4142
p = f.createParser(new byte[0]);
4243
assertFalse(p.isEnabled(AvroParser.Feature.AVRO_BUFFERING));
44+
45+
// 15-Jan-2021, tatu: 2.14 added this setting, not enabled in
46+
// default set
47+
assertTrue(p.getReadCapabilities().isEnabled(StreamReadCapability.EXACT_FLOATS));
48+
4349
try {
4450
p.setSchema(BOGUS_SCHEMA);
4551
fail("Should not pass!");
@@ -76,7 +82,7 @@ public void testGeneratorDefaults() throws Exception
7682
/* Defaults: Mapper, related
7783
/**********************************************************
7884
*/
79-
85+
8086
// Test to verify that data format affects default state of order-props-alphabetically
8187
public void testDefaultSettingsWithObjectMapper()
8288
{

cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ private Feature(boolean defaultState) {
6969
// read only up to 250k
7070
protected final static int LONGEST_NON_CHUNKED_BINARY = 250_000;
7171

72+
// @since 2.14 - require some overrides
73+
protected final static JacksonFeatureSet<StreamReadCapability> CBOR_READ_CAPABILITIES =
74+
DEFAULT_READ_CAPABILITIES.with(StreamReadCapability.EXACT_FLOATS);
75+
7276
/*
7377
/**********************************************************
7478
/* Configuration
@@ -420,7 +424,7 @@ public int getFormatFeatures() {
420424

421425
@Override // since 2.12
422426
public JacksonFeatureSet<StreamReadCapability> getReadCapabilities() {
423-
return DEFAULT_READ_CAPABILITIES.with(StreamReadCapability.EXACT_FLOATS);
427+
return CBOR_READ_CAPABILITIES;
424428
}
425429

426430
/*
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.fasterxml.jackson.dataformat.cbor;
2+
3+
import com.fasterxml.jackson.core.JsonParser;
4+
import com.fasterxml.jackson.core.StreamReadCapability;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
6+
7+
public class FormatDefaultsTest extends CBORTestBase
8+
{
9+
private final ObjectMapper MAPPER = cborMapper();
10+
11+
public void testParserDefaults() throws Exception
12+
{
13+
try (JsonParser p = MAPPER.createParser(new byte[4])) {
14+
// 15-Jan-2021, tatu: 2.14 added this setting, not enabled in
15+
// default set
16+
assertTrue(p.getReadCapabilities().isEnabled(StreamReadCapability.EXACT_FLOATS));
17+
}
18+
}
19+
}

cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/GeneratorDeepNestingTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212

1313
public class GeneratorDeepNestingTest extends CBORTestBase
1414
{
15+
private final ObjectMapper MAPPER = cborMapper();
16+
1517
/*
1618
/**********************************************************
1719
/* Test methods
1820
/**********************************************************
1921
*/
2022

21-
final ObjectMapper MAPPER = cborMapper();
22-
2323
// for [dataformats-binary#62]
2424
@SuppressWarnings("unchecked")
2525
public void testDeeplyNestedMap() throws Exception

smile/src/main/java/com/fasterxml/jackson/dataformat/smile/SmileParserBase.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public abstract class SmileParserBase extends ParserMinimalBase
2828
// read only up to 250k
2929
protected final static int LONGEST_NON_CHUNKED_BINARY = 250_000;
3030

31+
// @since 2.14
32+
protected final static JacksonFeatureSet<StreamReadCapability> SMILE_READ_CAPABILITIES
33+
= DEFAULT_READ_CAPABILITIES.with(StreamReadCapability.EXACT_FLOATS);
34+
3135
/*
3236
/**********************************************************
3337
/* Config
@@ -319,9 +323,6 @@ public final JsonParser overrideFormatFeatures(int values, int mask) {
319323
return this;
320324
}
321325

322-
protected final static JacksonFeatureSet<StreamReadCapability> SMILE_READ_CAPABILITIES
323-
= DEFAULT_READ_CAPABILITIES.with(StreamReadCapability.EXACT_FLOATS);
324-
325326
@Override // since 2.12
326327
public JacksonFeatureSet<StreamReadCapability> getReadCapabilities() {
327328
return SMILE_READ_CAPABILITIES;

smile/src/test/java/com/fasterxml/jackson/dataformat/smile/FloatPrecisionTest.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
package com.fasterxml.jackson.dataformat.smile;
2-
3-
import com.fasterxml.jackson.dataformat.smile.BaseTestForSmile;
4-
import com.fasterxml.jackson.dataformat.smile.SmileGenerator;
5-
import com.fasterxml.jackson.dataformat.smile.SmileParser;
6-
72
import java.io.ByteArrayOutputStream;
83
import java.math.BigDecimal;
94

105
import static org.junit.Assert.assertArrayEquals;
116

12-
137
// for [jackson-core#730]
148
public class FloatPrecisionTest extends BaseTestForSmile
159
{
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.fasterxml.jackson.dataformat.smile;
2+
3+
import com.fasterxml.jackson.core.JsonParser;
4+
import com.fasterxml.jackson.core.StreamReadCapability;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
6+
7+
public class FormatDefaultsTest extends BaseTestForSmile
8+
{
9+
private final ObjectMapper MAPPER = smileMapper();
10+
11+
public void testParserDefaults() throws Exception
12+
{
13+
try (JsonParser p = MAPPER.createParser(new byte[4])) {
14+
// 15-Jan-2021, tatu: 2.14 added this setting, not enabled in
15+
// default set
16+
assertTrue(p.getReadCapabilities().isEnabled(StreamReadCapability.EXACT_FLOATS));
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)