Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MacroExecutionException: TypecastParenPadCheck: Failed to find setter javadoc for property 'option' #13867

Closed
romani opened this issue Oct 11, 2023 · 5 comments · Fixed by #13873

Comments

@romani
Copy link
Member

romani commented Oct 11, 2023

after changes:

$ git diff src/xdocs/checks/whitespace/typecastparenpad.xml.template
diff --git a/src/xdocs/checks/whitespace/typecastparenpad.xml.template b/src/xdocs/checks/whitespace/typecastparenpad.xml.template
index 43686e1..a205273 100644
--- a/src/xdocs/checks/whitespace/typecastparenpad.xml.template
+++ b/src/xdocs/checks/whitespace/typecastparenpad.xml.template
@@ -18,22 +18,10 @@
 
       <subsection name="Properties" id="Properties">
         <div class="wrapper">
-          <table>
-            <tr>
-              <th>name</th>
-              <th>description</th>
-              <th>type</th>
-              <th>default value</th>
-              <th>since</th>
-            </tr>
-            <tr>
-              <td>option</td>
-              <td>Specify policy on how to pad parentheses.</td>
-              <td><a href="../../property_types.html#PadOption">PadOption</a></td>
-              <td><code>nospace</code></td>
-              <td>3.2</td>
-            </tr>
-          </table>
+          <macro name="properties">
+            <param name="modulePath"
+                   value="src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/TypecastParenPadCheck.java"/>
+          </macro>
         </div>
       </subsection>

error during mvn clean test

[INFO] Running com.puppycrawl.tools.checkstyle.internal.XdocsPagesTest
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.373 s <<< FAILURE! -- in com.puppycrawl.tools.checkstyle.internal.XdocsPagesTest
[ERROR] com.puppycrawl.tools.checkstyle.internal.XdocsPagesTest -- Time elapsed: 0.373 s <<< ERROR!
org.apache.maven.doxia.parser.ParseException: Macro execution failed: TypecastParenPadCheck: Failed to find setter javadoc for property 'option'
  at org.apache.maven.doxia.parser.AbstractXmlParser.parse(AbstractXmlParser.java:165)
  at org.apache.maven.doxia.parser.XhtmlBaseParser.parse(XhtmlBaseParser.java:92)
  at org.apache.maven.doxia.module.xdoc.XdocParser.parse(XdocParser.java:113)
  at com.puppycrawl.tools.checkstyle.site.XdocsTemplateParser.parse(XdocsTemplateParser.java:76)
  at org.apache.maven.doxia.parser.AbstractParser.parse(AbstractParser.java:207)
  at com.puppycrawl.tools.checkstyle.internal.utils.XdocGenerator.generateXdocContent(XdocGenerator.java:66)
  at com.puppycrawl.tools.checkstyle.internal.XdocsPagesTest.generateXdocContent(XdocsPagesTest.java:238)
....
Caused by: org.apache.maven.doxia.macro.MacroExecutionException: TypecastParenPadCheck: Failed to find setter javadoc for property 'option'
  at com.puppycrawl.tools.checkstyle.site.SiteUtil.assertAllPropertySetterJavadocsAreFound(SiteUtil.java:489)
  at com.puppycrawl.tools.checkstyle.site.SiteUtil.getPropertiesJavadocs(SiteUtil.java:464)
  at com.puppycrawl.tools.checkstyle.site.PropertiesMacro.writeTablePropertiesRows(PropertiesMacro.java:159)
  at com.puppycrawl.tools.checkstyle.site.PropertiesMacro.writePropertiesTable(PropertiesMacro.java:109)
  at com.puppycrawl.tools.checkstyle.site.PropertiesMacro.execute(PropertiesMacro.java:81)
  at org.apache.maven.doxia.parser.AbstractParser.executeMacro(AbstractParser.java:145)
  at com.puppycrawl.tools.checkstyle.site.XdocsTemplateParser.processMacroEnd(XdocsTemplateParser.java:187)
  at com.puppycrawl.tools.checkstyle.site.XdocsTemplateParser.handleEndTag(XdocsTemplateParser.java:116)
  at org.apache.maven.doxia.parser.AbstractXmlParser.parseXml(AbstractXmlParser.java:238)
  at org.apache.maven.doxia.parser.AbstractXmlParser.parse(AbstractXmlParser.java:156)
  ... 67 more
@romani
Copy link
Member Author

romani commented Oct 11, 2023

same for ParenPadCheck:

Caused by: org.apache.maven.doxia.macro.MacroExecutionException: ParenPadCheck: Failed to find setter javadoc for property 'option'
	at com.puppycrawl.tools.checkstyle.site.SiteUtil.assertAllPropertySetterJavadocsAreFound(SiteUtil.java:489)
	at com.puppycrawl.tools.checkstyle.site.SiteUtil.getPropertiesJavadocs(SiteUtil.java:464)
	at com.puppycrawl.tools.checkstyle.site.PropertiesMacro.writeTablePropertiesRows(PropertiesMacro.java:159)
	at com.puppycrawl.tools.checkstyle.site.PropertiesMacro.writePropertiesTable(PropertiesMacro.java:109)
	at com.puppycrawl.tools.checkstyle.site.PropertiesMacro.execute(PropertiesMacro.java:81)
	at org.apache.maven.doxia.parser.AbstractParser.executeMacro(AbstractParser.java:145)
	at com.puppycrawl.tools.checkstyle.site.XdocsTemplateParser.processMacroEnd(XdocsTemplateParser.java:187)
	at com.puppycrawl.tools.checkstyle.site.XdocsTemplateParser.handleEndTag(XdocsTemplateParser.java:116)
	at org.apache.maven.doxia.parser.AbstractXmlParser.parseXml(AbstractXmlParser.java:238)
	at org.apache.maven.doxia.parser.AbstractXmlParser.parse(AbstractXmlParser.java:156)
	... 67 more

@romani
Copy link
Member Author

romani commented Oct 11, 2023

here is generator -

* Generates xdocs pages from templates and performs validations.
* Before running this test, the following commands have to be executed:
* - mvn clean compile - Required for next command
* - mvn plexus-component-metadata:generate-metadata - Required to find custom macros and parser
*/
public class XdocsPagesTest {

you should be able to run it in debug mode , and placing breakpoint to place where you interested

here is generation method:

@BeforeAll
public static void generateXdocContent() throws Exception {
XdocGenerator.generateXdocContent();
}

@rnveach
Copy link
Member

rnveach commented Oct 11, 2023

All the checks have custom super classes, which is where the properties that were failed to find are located.
TypecastParenPadCheck has AbstractParenPadCheck. ParenPadCheck has AbstractParenPadCheck.

I assume the list will grow as there are others like AbstractSuperCheck and such.

We talked about this before as this tool uses Checkstyle and Checkstyle doesn't support multi-files or examining the classpath.

@romani
Copy link
Member Author

romani commented Oct 11, 2023

here is code to change:

/** List of files who are superclasses and contain certain properties that checks inherit. */
private static final List<File> MODULE_SUPER_CLASS_FILES = List.of(
new File(Paths.get(MAIN_FOLDER_PATH,
CHECKS, NAMING, "AbstractAccessControlNameCheck.java").toString()),
new File(Paths.get(MAIN_FOLDER_PATH,
CHECKS, NAMING, "AbstractNameCheck.java").toString()),
new File(Paths.get(MAIN_FOLDER_PATH,
CHECKS, "javadoc", "AbstractJavadocCheck.java").toString()),
new File(Paths.get(MAIN_FOLDER_PATH,
"api", "AbstractFileSetCheck.java").toString()),
new File(Paths.get(MAIN_FOLDER_PATH,
CHECKS, "header", "AbstractHeaderCheck.java").toString())
);

@relentless-pursuit
Copy link

I am on it.

relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 12, 2023
relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 13, 2023
relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 16, 2023
relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 19, 2023
relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 19, 2023
relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 20, 2023
relentless-pursuit pushed a commit to relentless-pursuit/checkstyle that referenced this issue Oct 20, 2023
@github-actions github-actions bot added this to the 10.12.5 milestone Oct 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants