Ignore generated constructors while searching for declarations, use correct name span to detect declarations.
1.1 --- a/remoting/server/web/resolve.web.api/src/org/netbeans/modules/jackpot30/resolve/api/ResolveService.java Sun Dec 02 22:31:11 2012 +0100
1.2 +++ b/remoting/server/web/resolve.web.api/src/org/netbeans/modules/jackpot30/resolve/api/ResolveService.java Sun Dec 02 23:04:01 2012 +0100
1.3 @@ -49,7 +49,9 @@
1.4 import com.sun.source.tree.VariableTree;
1.5 import com.sun.source.util.TreePath;
1.6 import com.sun.source.util.TreePathScanner;
1.7 +import com.sun.tools.javac.code.Flags;
1.8 import com.sun.tools.javac.tree.JCTree;
1.9 +import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
1.10 import java.io.IOException;
1.11 import java.io.InputStream;
1.12 import java.util.ArrayList;
1.13 @@ -183,7 +185,13 @@
1.14 case MEMBER_SELECT: name = ((MemberSelectTree) forTree.getLeaf()).getIdentifier(); break;
1.15 case ANNOTATION_TYPE: case CLASS:
1.16 case ENUM: case INTERFACE: name = ((ClassTree) forTree.getLeaf()).getSimpleName(); break;
1.17 - case METHOD: name = ((MethodTree) forTree.getLeaf()).getName(); break;
1.18 + case METHOD:
1.19 + if ((((JCMethodDecl) forTree.getLeaf()).getModifiers().flags & Flags.GENERATEDCONSTR) != 0) {
1.20 + //no positions for generated constructors:
1.21 + return new long[] {-1, -1, -1, -1};
1.22 + }
1.23 + name = ((MethodTree) forTree.getLeaf()).getName();
1.24 + break;
1.25 case VARIABLE: name = ((VariableTree) forTree.getLeaf()).getName(); break;
1.26 }
1.27
2.1 --- a/remoting/server/web/web.ui/src/org/netbeans/modules/jackpot30/backend/ui/UI.java Sun Dec 02 22:31:11 2012 +0100
2.2 +++ b/remoting/server/web/web.ui/src/org/netbeans/modules/jackpot30/backend/ui/UI.java Sun Dec 02 23:04:01 2012 +0100
2.3 @@ -49,6 +49,8 @@
2.4 import com.sun.source.tree.VariableTree;
2.5 import com.sun.source.util.TreePath;
2.6 import com.sun.source.util.TreePathScanner;
2.7 +import com.sun.tools.javac.code.Flags;
2.8 +import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
2.9 import freemarker.template.TemplateException;
2.10 import java.io.IOException;
2.11 import java.net.URI;
2.12 @@ -698,7 +700,7 @@
2.13
2.14 long[] span = ResolveService.nameSpan(info, getCurrentPath());
2.15
2.16 - if (span[0] <= position && position <= span[1]) {
2.17 + if (span[2] <= position && position <= span[3]) {
2.18 if (JavaUtils.SUPPORTED_KINDS.contains(el.getKind())) {
2.19 signature[0] = JavaUtils.serialize(ElementHandle.create(el));
2.20 }