diff options
author | pfullbright | 2011-10-19 21:21:33 +0000 |
---|---|---|
committer | pfullbright | 2011-10-19 21:21:33 +0000 |
commit | 7b2194e6e130ada0e52f41e0a58a31bf2716a981 (patch) | |
tree | aa90f132b45a6487858cc10d59e4e759c7292239 /common | |
parent | c0500c4abded713f7d619be246006359fbeb20d7 (diff) | |
download | webtools.dali-7b2194e6e130ada0e52f41e0a58a31bf2716a981.tar.gz webtools.dali-7b2194e6e130ada0e52f41e0a58a31bf2716a981.tar.xz webtools.dali-7b2194e6e130ada0e52f41e0a58a31bf2716a981.zip |
fixed problem with arrays and illegal/unexpected expressions. return empty array rather than single element array with null.
Diffstat (limited to 'common')
2 files changed, 6 insertions, 5 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java index e67ac839c2..9ecfd9e9e3 100644 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java +++ b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java @@ -66,10 +66,11 @@ public class AnnotationStringArrayExpressionConverter */ @Override protected String[] convertExpression(Expression expression) { - return (expression.getNodeType() == ASTNode.ARRAY_INITIALIZER) ? - this.arrayConverter.convertArrayInitializer((ArrayInitializer) expression) - : - new String[] {this.elementConverter.convert(expression)}; + if (expression.getNodeType() == ASTNode.ARRAY_INITIALIZER) { + return this.arrayConverter.convertArrayInitializer((ArrayInitializer) expression); + } + String result = this.elementConverter.convert(expression); + return (result == null) ? new String[0] : new String[] { result }; } public Expression getSubexpression(int index, Expression expression) { diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java index 3aaf924cf6..b4f2fa7afa 100644 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java +++ b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java @@ -330,7 +330,7 @@ public class MemberAnnotationElementAdapterTests extends AnnotationTestCase { DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); AnnotationElementAdapter<String[]> aea = new AnnotatedElementAnnotationElementAdapter<String[]>(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {null}, aea.getValue())); + assertTrue(Arrays.equals(new String[0], aea.getValue())); } public void testASTNode1() throws Exception { |