mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-13 18:15:55 +00:00
Fix for issue 408: IllegalArgumentException when generating setters in eclipse for fields with @Deprecated on them.
This commit is contained in:
1 parent
b8e1f3bdeb
commit
8a5d637af7
3 files changed
+13
-3
No files matched your search
@@ -6,6 +6,7 @@ Lombok Changelog
|
||||
* BUGFIX: {Delombok} Running delombok has been causing VerifyError errors when used with javac 1.7 since 0.11.0. [Issue #422](http://code.google.com/p/projectlombok/issues/detail?id=422)
|
||||
* BUGFIX: A conflict between lombok and certain eclipse plugins would result in NullPointerExceptions in the log when using `@Delegate`.
|
||||
* BUGFIX: `NullPointerException in lombok.javac.handlers.JavacHandlerUtil.upToTypeNode(JavacHandlerUtil.java:978)` when compiling with `@ExtensionMethod` in javac and generated constructors are involved. [Issue #423](http://code.google.com/p/projectlombok/issues/detail?id=423)
|
||||
* BUGFIX: `@Deprecated` on a field that gets a generated setter in eclipse would result in `IllegalArgumentException`, which you wouldn't see unless you have the error log open. If you have save actions defined, you'd get a popup box with the exception. Now fixed. [Issue #408](http://code.google.com/p/projectlombok/issues/detail?id=408)
|
||||
|
||||
### v0.11.4 (August 13th, 2012)
|
||||
* FEATURE: {Experimental} `@Value`, `@Wither` and `@FieldDefaults` are now available. These are a lot like `@Data` but geared towards immutable classes. [Documentation on @Value](http://projectlombok.org/features/experimental/Value.html), [Documentation on @Wither](http://projectlombok.org/features/experimental/Wither.html) and [Documentation on @FieldDefaults](http://projectlombok.org/features/experimental/FieldDefaults.html).
|
||||
|
||||
@@ -249,7 +249,17 @@ public class EclipseHandlerUtil {
|
||||
QualifiedTypeReference qtr = new QualifiedTypeReference(new char[][] {
|
||||
{'j', 'a', 'v', 'a'}, {'l', 'a', 'n', 'g'}, {'D', 'e', 'p', 'r', 'e', 'c', 'a', 't', 'e', 'd'}}, poss(source, 3));
|
||||
setGeneratedBy(qtr, source);
|
||||
return new MarkerAnnotation(qtr, source.sourceStart);
|
||||
MarkerAnnotation ma = new MarkerAnnotation(qtr, source.sourceStart);
|
||||
// No matter what value you input for sourceEnd, the AST->DOM converter of eclipse will reparse to find the end, and will fail as
|
||||
// it can't find code that isn't really there. This results in the end position being set to 2 or 0 or some weird magic value, and thus,
|
||||
// length, as calculated by end-start, is all screwed up, resulting in IllegalArgumentException during a setSourceRange call MUCH later in the process.
|
||||
// We solve it by going with a voodoo magic source start value such that the calculated length so happens to exactly be 0. 0 lengths are accepted
|
||||
// by eclipse. For some reason.
|
||||
// TL;DR: Don't change 1. 1 is sacred. Trust the 1.
|
||||
// issue: #408.
|
||||
ma.sourceStart = 1;
|
||||
setGeneratedBy(ma, source);
|
||||
return ma;
|
||||
}
|
||||
|
||||
public static boolean isFieldDeprecated(EclipseNode fieldNode) {
|
||||
|
||||
@@ -103,8 +103,7 @@ public class DirectoryRunner extends Runner {
|
||||
if (!runTest(entry.getKey())) {
|
||||
notifier.fireTestIgnored(testDescription);
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
} catch (Throwable t) {
|
||||
notifier.fireTestFailure(new Failure(testDescription, t));
|
||||
}
|
||||
notifier.fireTestFinished(testDescription);
|
||||
|
||||
Reference in new issue
Block a user