[pmd-devel] [ pmd-Bugs-2826274 ] pmd 5.0: Incorrect XPath Result in Rule Designer
A source code analyzer
Brought to you by:
adangel,
juansotuyo
From: SourceForge.net <no...@so...> - 2009-07-24 05:34:52
|
Bugs item #2826274, was opened at 2009-07-23 18:21 Message generated for change (Comment added) made by rgustav You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=479921&aid=2826274&group_id=56262 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: pmd Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Andy Throgmorton (andystacy) Assigned to: Ryan Gustafson (rgustav) Summary: pmd 5.0: Incorrect XPath Result in Rule Designer Initial Comment: I was trying out the new rule designer in the snapshot of PMD 5.0, and found what I think is a bug. To reproduce: Run this query //PrimaryExpression/PrimaryPrefix[@Image = 'this'] on this source code public class Foo { public void test() { Object that = new Object(); if (this == that) { } } } In the PMD 4.2.x rule designer, the correct behavior is observed: "ASTPrimaryPrefix at line 4 column 14". In PMD 5.0, however, the query results in "No matching nodes (hashcode)". This occurs both in XPath version 1.0 and 1.0 compatibility mode. I realize this bug is against unreleased, beta software. Just thought I'd help catch a bug early on in the development process :) Andy ---------------------------------------------------------------------- >Comment By: Ryan Gustafson (rgustav) Date: 2009-07-24 00:34 Message: I'm not able to replicate this in 4.2.6, or trunk. The 'this' is not the image of the Node, it is the modifier, and has it's own attribute. The way to check is like so: //PrimaryExpression/PrimaryPrefix[@ThisModifier ='true'] Does this work for you? Consider the following to help understand, use @SuperModifier on the last one: public class Foo { int x; public void test() { int a = x; int b = this.x; int c = super.x; } } This is just how the Java JavaCC grammar has been written (file Java.jjt). Look at the PrimaryPrefix definition for specifics. ---------------------------------------------------------------------- Comment By: Ryan Gustafson (rgustav) Date: 2009-07-23 18:49 Message: Thanks, I wasn't aware of this. I'll look into it. --Ryan ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=479921&aid=2826274&group_id=56262 |