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

wuwen5 / hessian / 17177490298

23 Aug 2025 03:42PM UTC coverage: 68.416% (+11.8%) from 56.631%
17177490298

push

github

web-flow
refactor: fix sonar S2184 and code clean (#29)

1781 of 2793 branches covered (63.77%)

Branch coverage included in aggregate %.

4152 of 5879 relevant lines covered (70.62%)

3.07 hits per line

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

41.38
hessian2-codec/src/main/java/io/github/wuwen5/hessian/io/AbstractStringValueDeserializer.java
1
/*
2
 * Copyright (c) 2001-2004 Caucho Technology, Inc.  All rights reserved.
3
 *
4
 * The Apache Software License, Version 1.1
5
 *
6
 * Redistribution and use in source and binary forms, with or without
7
 * modification, are permitted provided that the following conditions
8
 * are met:
9
 *
10
 * 1. Redistributions of source code must retain the above copyright
11
 *    notice, this list of conditions and the following disclaimer.
12
 *
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in
15
 *    the documentation and/or other materials provided with the
16
 *    distribution.
17
 *
18
 * 3. The end-user documentation included with the redistribution, if
19
 *    any, must include the following acknowlegement:
20
 *       "This product includes software developed by the
21
 *        Caucho Technology (http://www.caucho.com/)."
22
 *    Alternately, this acknowlegement may appear in the software itself,
23
 *    if and wherever such third-party acknowlegements normally appear.
24
 *
25
 * 4. The names "Hessian", "Resin", and "Caucho" must not be used to
26
 *    endorse or promote products derived from this software without prior
27
 *    written permission. For written permission, please contact
28
 *    info@caucho.com.
29
 *
30
 * 5. Products derived from this software may not be called "Resin"
31
 *    nor may "Resin" appear in their names without prior written
32
 *    permission of Caucho Technology.
33
 *
34
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37
 * DISCLAIMED.  IN NO EVENT SHALL CAUCHO TECHNOLOGY OR ITS CONTRIBUTORS
38
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
39
 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
40
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
42
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
43
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
44
 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45
 *
46
 * @author Scott Ferguson
47
 */
48

49
package io.github.wuwen5.hessian.io;
50

51
import java.io.IOException;
52

53
/**
54
 * Deserializes a string-valued object like BigDecimal.
55
 */
56
public abstract class AbstractStringValueDeserializer extends BaseDeserializer {
3✔
57

58
    /**
59
     * Creates an object from a string value.
60
     * @param value the string value to create the object from
61
     * @return the created object
62
     * @throws IOException if an error occurs during creation
63
     */
64
    protected abstract Object create(String value) throws IOException;
65

66
    /**
67
     * Deserializes a map from the Hessian input stream.
68
     * @param in the Hessian decoder
69
     * @return the deserialized object
70
     * @throws IOException if an error occurs during deserialization
71
     */
72
    @Override
73
    public Object readMap(AbstractHessianDecoder in) throws IOException {
74
        String value = null;
×
75

76
        while (!in.isEnd()) {
×
77
            String key = in.readString();
×
78

79
            if ("value".equals(key)) {
×
80
                value = in.readString();
×
81
            } else {
82
                in.readObject();
×
83
            }
84
        }
×
85

86
        in.readMapEnd();
×
87

88
        Object object = create(value);
×
89

90
        in.addRef(object);
×
91

92
        return object;
×
93
    }
94

95
    @Override
96
    public Object readObject(AbstractHessianDecoder in, Object[] fields) throws IOException {
97
        String[] fieldNames = (String[]) fields;
3✔
98

99
        String value = null;
2✔
100

101
        for (String fieldName : fieldNames) {
16✔
102
            if ("value".equals(fieldName)) {
4!
103
                value = in.readString();
4✔
104
            } else {
105
                in.readObject();
×
106
            }
107
        }
108

109
        Object object = create(value);
4✔
110

111
        in.addRef(object);
4✔
112

113
        return object;
2✔
114
    }
115
}
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