Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Thoms2018-03-16 15:32:22 +0000
committerJay Arthanareeswaran2018-05-21 08:42:44 +0000
commit95dc2d8aefb5a76afa0aa18c2377113a9ae06fd5 (patch)
tree3b8255a8af741bfbf3270b96f4795781a85fc822
parent7de5e9f339960be6ad4801436c29eddc5a8f6be4 (diff)
downloadeclipse.jdt.core-95dc2d8aefb5a76afa0aa18c2377113a9ae06fd5.tar.gz
eclipse.jdt.core-95dc2d8aefb5a76afa0aa18c2377113a9ae06fd5.tar.xz
eclipse.jdt.core-95dc2d8aefb5a76afa0aa18c2377113a9ae06fd5.zip
Bug 532545 - setChildren: Check for zero-length array argumentI20180522-2000I20180522-0800I20180521-2000I20180521-0800
Change-Id: Ic00132b0637be5ee8f0a984b3b9018ab17b0c3a0 Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de>
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java2
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/OpenableElementInfo.java2
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragment.java10
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java10
4 files changed, 16 insertions, 8 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java
index 06ab4b6a1f..03c6d80b19 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ClassFile.java
@@ -76,7 +76,7 @@ protected boolean buildStructure(OpenableElementInfo info, IProgressMonitor pm,
if (typeInfo == null) {
// The structure of a class file is unknown if a class file format errors occurred
//during the creation of the diet class file representative of this ClassFile.
- info.setChildren(new IJavaElement[] {});
+ info.setChildren(JavaElement.NO_ELEMENTS);
return false;
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/OpenableElementInfo.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/OpenableElementInfo.java
index 5509a8b08c..c33c0e163e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/OpenableElementInfo.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/OpenableElementInfo.java
@@ -85,7 +85,7 @@ public class OpenableElementInfo extends JavaElementInfo {
}
public void setChildren(IJavaElement[] children) {
- this.children = children;
+ this.children= (children.length > 0) ? children : JavaElement.NO_ELEMENTS;
}
public void setModule(IModuleDescription module) {
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragment.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragment.java
index 2020f29257..25ea679696 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragment.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragment.java
@@ -115,9 +115,13 @@ protected boolean buildStructure(OpenableElementInfo info, IProgressMonitor pm,
}
}
- IJavaElement[] children = new IJavaElement[vChildren.size()];
- vChildren.toArray(children);
- info.setChildren(children);
+ if (!vChildren.isEmpty()) {
+ IJavaElement[] children = new IJavaElement[vChildren.size()];
+ vChildren.toArray(children);
+ info.setChildren(children);
+ } else {
+ info.setChildren(JavaElement.NO_ELEMENTS);
+ }
return true;
}
/**
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java
index 1b950d2e76..8362861e46 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java
@@ -206,9 +206,13 @@ protected boolean computeChildren(OpenableElementInfo info, IResource underlying
// if (module != null && module.exists()) {
// vChildren.add(new ClassFile(getPackageFragment(CharOperation.NO_STRINGS), String.valueOf(TypeConstants.MODULE_INFO_NAME)));
// }
- IJavaElement[] children = new IJavaElement[vChildren.size()];
- vChildren.toArray(children);
- info.setChildren(children);
+ if (!vChildren.isEmpty()) {
+ IJavaElement[] children = new IJavaElement[vChildren.size()];
+ vChildren.toArray(children);
+ info.setChildren(children);
+ } else {
+ info.setChildren(JavaElement.NO_ELEMENTS);
+ }
}
} catch (JavaModelException e) {
//problem resolving children; structure remains unknown

Back to the top