• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

alibaba / jetcache / #447

23 May 2026 01:52AM UTC coverage: 88.921% (-0.4%) from 89.31%
#447

push

areyouok
feat: allow customize DecodeFilter for kryo decoder

54 of 59 new or added lines in 8 files covered. (91.53%)

24 existing lines in 8 files now uncovered.

4976 of 5596 relevant lines covered (88.92%)

0.89 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.44
/jetcache-core/src/main/java/com/alicp/jetcache/support/JavaValueDecoder.java
1
package com.alicp.jetcache.support;
2

3
import java.io.ByteArrayInputStream;
4
import java.io.IOException;
5
import java.io.ObjectInputFilter;
6
import java.io.ObjectInputStream;
7

8
/**
9
 * Created on 2016/10/4.
10
 *
11
 * @author huangli
12
 */
13
public class JavaValueDecoder extends AbstractValueDecoder {
14

15
    public static final JavaValueDecoder INSTANCE = new JavaValueDecoder(true);
1✔
16

17
    public JavaValueDecoder(boolean useIdentityNumber) {
18
        super(useIdentityNumber);
1✔
19
    }
1✔
20

21
    @Override
22
    public Object doApply(byte[] buffer) throws Exception {
23
        ByteArrayInputStream in;
24
        if (useIdentityNumber) {
1✔
25
            in = new ByteArrayInputStream(buffer, 4, buffer.length - 4);
1✔
26
        } else {
27
            in = new ByteArrayInputStream(buffer);
1✔
28
        }
29
        ObjectInputStream ois = buildObjectInputStream(in);
1✔
30
        setFilter(ois);
1✔
31
        return ois.readObject();
1✔
32
    }
33

34
    protected ObjectInputStream buildObjectInputStream(ByteArrayInputStream in) throws IOException {
35
        return new ObjectInputStream(in);
1✔
36
    }
37

38
    private void setFilter(ObjectInputStream ois) {
39
        if (!DecodeFilter.getDefault().isEnabled()) {
1✔
40
            return;
1✔
41
        }
42
        ObjectInputFilter filter = DecodeFilter::javaFilter;
1✔
43
        ObjectInputFilter existing = ois.getObjectInputFilter();
1✔
44
        if (existing != null) {
1✔
UNCOV
45
            ois.setObjectInputFilter(ObjectInputFilter.merge(existing, filter));
×
46
        } else {
47
            ois.setObjectInputFilter(filter);
1✔
48
        }
49
    }
1✔
50
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc