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

evolvedbinary / elemental / 982

29 Apr 2025 08:34PM UTC coverage: 56.409% (+0.007%) from 56.402%
982

push

circleci

adamretter
[feature] Improve README.md badges

28451 of 55847 branches covered (50.94%)

Branch coverage included in aggregate %.

77468 of 131924 relevant lines covered (58.72%)

0.59 hits per line

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

73.91
/exist-core/src/main/java/org/exist/storage/serializers/XmlSerializerPool.java
1
/*
2
 * Elemental
3
 * Copyright (C) 2024, Evolved Binary Ltd
4
 *
5
 * admin@evolvedbinary.com
6
 * https://www.evolvedbinary.com | https://www.elemental.xyz
7
 *
8
 * Use of this software is governed by the Business Source License 1.1
9
 * included in the LICENSE file and at www.mariadb.com/bsl11.
10
 *
11
 * Change Date: 2028-04-27
12
 *
13
 * On the date above, in accordance with the Business Source License, use
14
 * of this software will be governed by the Apache License, Version 2.0.
15
 *
16
 * Additional Use Grant: Production use of the Licensed Work for a permitted
17
 * purpose. A Permitted Purpose is any purpose other than a Competing Use.
18
 * A Competing Use means making the Software available to others in a commercial
19
 * product or service that: substitutes for the Software; substitutes for any
20
 * other product or service we offer using the Software that exists as of the
21
 * date we make the Software available; or offers the same or substantially
22
 * similar functionality as the Software.
23
 */
24
package org.exist.storage.serializers;
25

26
import org.apache.commons.pool2.impl.GenericObjectPool;
27
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
28
import org.exist.storage.DBBroker;
29
import org.exist.util.Configuration;
30

31
import javax.annotation.Nullable;
32

33
public class XmlSerializerPool extends GenericObjectPool<Serializer> {
34
    public XmlSerializerPool(final DBBroker broker, final Configuration config, final int maxIdle) {
35
        super(new XmlSerializerPoolObjectFactory(broker, config), toConfig(broker.getId(), maxIdle));
1✔
36
    }
1✔
37

38
    private static GenericObjectPoolConfig<Serializer> toConfig(@Nullable final String brokerId, final int maxIdle) {
39
        final GenericObjectPoolConfig<Serializer> config = new GenericObjectPoolConfig<>();
1✔
40
        config.setBlockWhenExhausted(false);
1✔
41
        config.setLifo(true);
1✔
42
        config.setMaxIdle(maxIdle);
1✔
43
        config.setMaxTotal(-1);            // TODO(AR) is this the best way to allow us to temporarily exceed the size of the pool?
1✔
44
        final String poolName = brokerId == null ? "" : "pool." + brokerId;
1!
45
        config.setJmxNameBase("org.exist.management.exist:type=XmlSerializerPool,name=" + poolName);
1✔
46
        return config;
1✔
47
    }
48

49
    @Override
50
    public Serializer borrowObject() {
51
        try {
52
            return super.borrowObject();
1✔
53
        } catch (final Exception e) {
×
54
            throw new IllegalStateException("Error while borrowing serializer: " + e.getMessage());
×
55
        }
56
    }
57

58
    @Override
59
    public void returnObject(final Serializer obj) {
60
        if (obj == null) {
1!
61
            return;
×
62
        }
63

64
        try {
65
            super.returnObject(obj);
1✔
66
        } catch (final Exception e) {
1✔
67
            throw new IllegalStateException("Error while returning serializer: " + e.getMessage());
×
68
        }
69
    }
1✔
70
}
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

© 2025 Coveralls, Inc