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

FIWARE / contract-management / #103

30 Sep 2026 02:39PM UTC coverage: 4.528% (+0.7%) from 3.796%
#103

Pull #28

vramperez
Address review: keep the standard stacktrace, only add the downstream answer

- DownstreamError no longer rewrites the cause chain into a custom format; it
  only adds what the stacktrace lacks: status and body of the downstream
  answer a failure was caused by
- The single place logging a failure attaches the exception, so the standard
  stacktrace is printed once per failure (subscription retries and faulty
  client requests stay one line)
- Removed remaining duplicate logs: the ContractManagementController and
  Oid4VpAuthHandler logged errors that are propagated and logged again; the
  OID4VP token failure is wrapped with client and scope instead

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pull Request #28: Add failure reasons, downstream error descriptions and configurable log output

213 of 403 new or added lines in 35 files covered. (52.85%)

11 existing lines in 7 files now uncovered.

1621 of 35799 relevant lines covered (4.53%)

0.05 hits per line

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

42.86
/src/main/java/org/fiware/iam/exception/ContractManagementException.java
1
package org.fiware.iam.exception;
2

3
import io.micronaut.core.annotation.Nullable;
4
import lombok.Getter;
5

6
/**
7
 * Base of all expected failures of the contract management. Its message already explains the problem, so it is
8
 * logged as a single line without a stack trace.
9
 */
10
@Getter
11
public abstract class ContractManagementException extends RuntimeException {
12

13
        @Nullable
14
        private final FailureReason reason;
15

16
        protected ContractManagementException(String message) {
NEW
17
                this(null, message, null);
×
NEW
18
        }
×
19

20
        protected ContractManagementException(String message, Throwable cause) {
NEW
21
                this(null, message, cause);
×
NEW
22
        }
×
23

24
        protected ContractManagementException(@Nullable FailureReason reason, String message, @Nullable Throwable cause) {
25
                super(reason == null ? message : reason.format(message), cause);
1 ✔
26
                this.reason = reason;
1 ✔
27
        }
1 ✔
28
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc