blob: 6363e5722decf5556c40af9038080aeb989441b9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package com.fasterxml.jackson.databind.deser.impl;
import java.util.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.deser.SettableBeanProperty;
import com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap;
import com.fasterxml.jackson.databind.deser.impl.ObjectIdReader;
import com.fasterxml.jackson.databind.deser.impl.ObjectIdValueProperty;
import com.fasterxml.jackson.databind.type.TypeFactory;
// for [databind#884]
public class BeanPropertyMapTest extends BaseMapTest
{
protected final static JavaType BOGUS_TYPE = TypeFactory.unknownType();
@SuppressWarnings("serial")
static class MyObjectIdReader extends ObjectIdReader
{
public MyObjectIdReader(String name) {
super(BOGUS_TYPE, new PropertyName(name), null,
null, null, null);
}
}
// Highly specialized test in which we get couple of hash collisions for
// small (16) hash map
public void testArrayOutOfBounds884() throws Exception
{
List<SettableBeanProperty> props = new ArrayList<SettableBeanProperty>();
PropertyMetadata md = PropertyMetadata.STD_REQUIRED;
props.add(new ObjectIdValueProperty(new MyObjectIdReader("pk"), md));
props.add(new ObjectIdValueProperty(new MyObjectIdReader("firstName"), md));
BeanPropertyMap propMap = new BeanPropertyMap(false, props,
new HashMap<String,List<PropertyName>>(),
Locale.getDefault());
propMap = propMap.withProperty(new ObjectIdValueProperty(new MyObjectIdReader("@id"), md));
assertNotNull(propMap);
}
}
|