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

oracle / opengrok / #3658

25 Oct 2023 12:46PM UTC coverage: 66.025% (-9.8%) from 75.792%
#3658

push

web-flow
Handle history cache failures (#4456)

fixes #747

84 of 84 new or added lines in 4 files covered. (100.0%)

38700 of 58614 relevant lines covered (66.03%)

0.66 hits per line

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

0.0
/opengrok-indexer/src/main/java/org/opengrok/indexer/history/BitKeeperAnnotationParser.java
1
/*
2
 * CDDL HEADER START
3
 *
4
 * The contents of this file are subject to the terms of the
5
 * Common Development and Distribution License (the "License").
6
 * You may not use this file except in compliance with the License.
7
 *
8
 * See LICENSE.txt included in this distribution for the specific
9
 * language governing permissions and limitations under the License.
10
 *
11
 * When distributing Covered Code, include this CDDL HEADER in each
12
 * file and include the License file at LICENSE.txt.
13
 * If applicable, add the following below this CDDL HEADER, with the
14
 * fields enclosed by brackets "[]" replaced with your own identifying
15
 * information: Portions Copyright [yyyy] [name of copyright owner]
16
 *
17
 * CDDL HEADER END
18
 */
19

20
package org.opengrok.indexer.history;
21

22
import java.io.BufferedReader;
23
import java.io.IOException;
24
import java.io.InputStream;
25
import java.io.InputStreamReader;
26
import java.util.logging.Level;
27
import java.util.logging.Logger;
28

29
import org.opengrok.indexer.logger.LoggerFactory;
30
import org.opengrok.indexer.util.Executor;
31

32
/**
33
 * handles parsing the output of the {@code bk annotate} command
34
 * into an annotation object.
35
 *
36
 * @author James Service  {@literal <jas2701@googlemail.com>}
37
 */
38
public class BitKeeperAnnotationParser implements Executor.StreamHandler {
39

40
    private static final Logger LOGGER = LoggerFactory.getLogger(BitKeeperAnnotationParser.class);
×
41

42
    /**
43
     * Store annotation created by processStream.
44
     */
45
    private final Annotation annotation;
46

47
    /**
48
     * @param fileName the name of the file being annotated
49
     */
50
    public BitKeeperAnnotationParser(String fileName) {
×
51
        annotation = new Annotation(fileName);
×
52
    }
×
53

54
    /**
55
     * Returns the annotation that has been created.
56
     *
57
     * @return annotation an annotation object
58
     */
59
    public Annotation getAnnotation() {
60
        return annotation;
×
61
    }
62

63
    /**
64
     * Process the output of a {@code bk annotate} command.
65
     *
66
     * Each input line should be in the following format:
67
     *   USER\tREVISION\tTEXT
68
     *
69
     * @param input the executor input stream
70
     * @throws IOException if the stream reader throws an IOException
71
     */
72
    @Override
73
    public void processStream(InputStream input) throws IOException {
74
        final BufferedReader in = new BufferedReader(new InputStreamReader(input));
×
75
        for (String line = in.readLine(); line != null; line = in.readLine()) {
×
76
            final String[] fields = line.split("\t");
×
77
            if (fields.length >= 2) {
×
78
                final String author = fields[0];
×
79
                final String rev = fields[1];
×
80
                annotation.addLine(rev, author, true);
×
81
            } else {
×
82
                LOGGER.log(Level.SEVERE, "Error: malformed BitKeeper annotate output {0}", line);
×
83
            }
84
        }
85
    }
×
86
}
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