aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/changelog.markdown4
-rw-r--r--src/delombok/lombok/delombok/PrettyCommentsPrinter.java11
2 files changed, 14 insertions, 1 deletions
diff --git a/doc/changelog.markdown b/doc/changelog.markdown
index e2425717..f1017790 100644
--- a/doc/changelog.markdown
+++ b/doc/changelog.markdown
@@ -18,6 +18,10 @@ Lombok Changelog
* BUGFIX: While its discouraged, `import lombok.*;` is supposed to work in the vast majority of cases. In eclipse, however, it didn't. Now it does. [Issue #102](http://code.google.com/p/projectlombok/issues/detail?id=102)
* BUGFIX: When `@Getter` or `@Setter` is applied to a multiple field declaration, such as `@Getter int x, y;`, the annotation now applies to all fields, not just the first. [Issue #54](http://code.google.com/p/projectlombok/issues/detail?id=54)
* ENHANCEMENT: generated `toString`, `equals` and `hashCode` methods will now use `this.getX()` and `other.getX()` instead of `this.x` and `other.x` if a suitable getter is available. This behaviour is useful for proxied classes, such as the POJOs that hibernate makes. Usage of the getters can be suppressed with `@ToString/@EqualsAndHashCode(doNotUseGetters = true)`. [Issue #110](http://code.google.com/p/projectlombok/issues/detail?id=110)
+* BUGFIX: delombok on most javacs would quit with a NoSuchFieldError if it contains <?> style wildcards anywhere in the source, as well as at least 1 lombok annotation. No longer. [Issue #134](http://code.google.com/p/projectlombok/issues/detail?id=134)
+
+Fixes issue #134.
+
### v0.9.2 "Hailbunny" (December 15th, 2009)
* preliminary support for lombok on NetBeans! - thanks go to Jan Lahoda from NetBeans. [Issue #20](http://code.google.com/p/projectlombok/issues/detail?id=20)
diff --git a/src/delombok/lombok/delombok/PrettyCommentsPrinter.java b/src/delombok/lombok/delombok/PrettyCommentsPrinter.java
index a7c79f46..c96d2802 100644
--- a/src/delombok/lombok/delombok/PrettyCommentsPrinter.java
+++ b/src/delombok/lombok/delombok/PrettyCommentsPrinter.java
@@ -42,6 +42,7 @@ import lombok.delombok.Comment.EndConnection;
import lombok.delombok.Comment.StartConnection;
import com.sun.source.tree.Tree;
+import com.sun.tools.javac.code.BoundKind;
import com.sun.tools.javac.code.Flags;
import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.code.TypeTags;
@@ -1386,12 +1387,20 @@ public class PrettyCommentsPrinter extends JCTree.Visitor {
@Override
public void visitWildcard(JCWildcard tree) {
try {
- print(tree.kind);
+ Object kind = tree.getClass().getField("kind").get(tree);
+ print(kind);
+ if (kind != null && kind.getClass().getSimpleName().equals("TypeBoundKind")) {
+ kind = kind.getClass().getField("kind").get(kind);
+ }
if (tree.getKind() != Tree.Kind.UNBOUNDED_WILDCARD)
printExpr(tree.inner);
} catch (IOException e) {
throw new UncheckedIOException(e);
+ } catch (NoSuchFieldException e) {
+ throw new RuntimeException(e);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(e);
}
}