Details
Description
The attached test suites for org.xwiki.context.internal.DefaultExecution.java and org.xwiki.logging.Message.java come from a prototype I have been working on which combines static analysis and automated test generation.
The prototype analyses a specified dependency of a project to identify risky API calls which may potentially lead to runtime exceptions. Runtime exceptions may occur either because
- an API lacks sufficient documentation,or
- usage of the API does not conform to the specification, or
- API wrapper does not indicate the API specification as part of its own specification.
The prototype then automatically generates test cases which show how such exceptions may be triggered.
Observation:
For xwiki-commons, {{JDK API}}s were analyzed. It seems that the failing methods do not handle the potential runtime exceptions declared for the {{JDK API}}s they invoke.
Possible fixes:
- The failing methods under test could add internal checks on the values they forward to the {{JDK API}}s.
- The failing methods could handle the exceptions by adding relevant try/catch blocks.
- The failing methods under test could specify the potential exceptions by adding @throws in their documentation/method signatures.