theonedev/onedev · error · IllegalArgumentException
Negative number in diff_fromDelta: ${param}
Error message
Negative number in diff_fromDelta: ${param} What it means
Delta-decoder guard in DiffMatchPatch.diff_fromDelta: a delta token prefixed with '-' or '=' parsed to a negative number; those operations require a non-negative length, so IllegalArgumentException is thrown for the malformed delta string. Fix: supply a well-formed delta encoding (non-negative numeric lengths).
Source
Thrown at server-core/src/main/java/io/onedev/server/util/diff/DiffMatchPatch.java:1542
} catch (IllegalArgumentException e) {
// Malformed URI sequence.
throw new IllegalArgumentException("Illegal escape in diff_fromDelta: "
+ param, e);
}
diffs.add(new Diff(Operation.INSERT, param));
break;
case '-':
// Fall through.
case '=':
int n;
try {
n = Integer.parseInt(param);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("Invalid number in diff_fromDelta: "
+ param, e);
}
if (n < 0) {
throw new IllegalArgumentException("Negative number in diff_fromDelta: "
+ param);
}
String text;
try {
text = text1.substring(pointer, pointer += n);
} catch (StringIndexOutOfBoundsException e) {
throw new IllegalArgumentException("Delta length (" + pointer
+ ") larger than source text length (" + text1.length() + ").", e);
}
if (token.charAt(0) == '=') {
diffs.add(new Diff(Operation.EQUAL, text));
} else {
diffs.add(new Diff(Operation.DELETE, text));
}
break;
default:
// Anything else is an error.
throw new IllegalArgumentException("Invalid diff operation in diff_fromDelta: "View on GitHub (pinned to d44925c47c)
Solutions
- Regenerate the delta with diff_toDelta.
- Fix the negative length prefix in the corrupted token.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server-core/src/main/java/io/onedev/server/util/diff/DiffMatchPatch.java:1542 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/11473a3392b2d09e.
Report an issue: GitHub.