[java] Parser Error: Cast in return expression
A source code analyzer
Brought to you by:
adangel,
juansotuyo
The following code produces a parser error:
public Set<String> getAttributeTuples()
{
return (Set<String>) (this.attributes == null ? Collections.<String> emptySet() : new HashSet<String>(CollectionUtils.collect(this.attributes.keySet(), new Transformer()
{
@Override
public Object transform(final Object obj) {
final String key = (String) obj;
final String value = HGXLIFFTypeConfiguration.this.attributes.get(key);
String result = key;
if(StringUtils.isNotEmpty(value))
{
result = result.concat(":").concat(value);
}
return result;
}
})));
}
Remove the cast ((Set<String>)) in the return expression.
Exception stack trace:
14:51:55 Error while processing file: D:\Jenkins\workspace\10_compile_check\bin\custom\src\com\project\xliff\export\configuration\XLIFFTypeConfiguration.java
14:51:55 net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " ">" "> "" at line 101, column 35.
14:51:55 Was expecting one of:
14:51:55 ")" ...
14:51:55 "++" ...
14:51:55 "--" ...
14:51:55
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:10783)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:10667)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.PrimaryPrefix(JavaParser.java:3720)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.PrimaryExpression(JavaParser.java:3569)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.PostfixExpression(JavaParser.java:3415)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.UnaryExpressionNotPlusMinus(JavaParser.java:3379)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.UnaryExpression(JavaParser.java:3240)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.MultiplicativeExpression(JavaParser.java:3136)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.AdditiveExpression(JavaParser.java:3085)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ShiftExpression(JavaParser.java:3032)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.RelationalExpression(JavaParser.java:2973)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.InstanceOfExpression(JavaParser.java:2939)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.EqualityExpression(JavaParser.java:2888)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.AndExpression(JavaParser.java:2850)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ExclusiveOrExpression(JavaParser.java:2812)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.InclusiveOrExpression(JavaParser.java:2774)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ConditionalAndExpression(JavaParser.java:2736)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ConditionalOrExpression(JavaParser.java:2698)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ConditionalExpression(JavaParser.java:2661)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.Expression(JavaParser.java:2536)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ReturnStatement(JavaParser.java:5392)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.Statement(JavaParser.java:4464)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.BlockStatement(JavaParser.java:4586)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.Block(JavaParser.java:4547)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.MethodDeclaration(JavaParser.java:1542)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBodyDeclaration(JavaParser.java:1211)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1129)
14:51:55 at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:571)
This will be fixed with 5.3.6, 5.4.1, and 5.5.0.
Commit: https://github.com/pmd/pmd/commit/a7a84766bd17ff493c0d1b823d2d0052d591c5f1