[563074] Failing unit test TestHTMLContentAssistComputers.testResourceProposalsForImgSrc()
diff --git a/web/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/resources/ContentTypeSpecs.java b/web/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/resources/ContentTypeSpecs.java
index d103cf1..0acf4a1 100644
--- a/web/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/resources/ContentTypeSpecs.java
+++ b/web/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/resources/ContentTypeSpecs.java
@@ -33,7 +33,7 @@
public static ContentTypeSpecs createFor(String[] contentTypeIds) {
// long startTime = System.currentTimeMillis();
- Set<String> filenameExtensions = new HashSet<>();
+ List<String> filenameExtensions = new ArrayList<String>();
Set<String> filenames = new HashSet<>();
Set<String> combinedBaseExtensions = new HashSet<>();
for (String contentTypeId: contentTypeIds) {
@@ -42,29 +42,28 @@
for (int i = 0; i < baseExtensions.length; i++) {
combinedBaseExtensions.add(baseExtensions[i]);
}
+ String[] names = baseContentType.getFileSpecs(IContentType.FILE_NAME_SPEC);
+ for (int j = 0; j < names.length; j++) {
+ filenames.add(names[j]);
+ }
Arrays.sort(baseExtensions);
IContentType[] contentTypes = Platform.getContentTypeManager().getAllContentTypes();
for (int i = 0, length = contentTypes.length; i < length; i++) {
if (contentTypes[i].isKindOf(baseContentType)) {
String[] fileExtension = contentTypes[i].getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
for (int j = 0; j < fileExtension.length; j++) {
- filenameExtensions.add(fileExtension[j]);
+ if (!filenameExtensions.contains(fileExtension[j])) {
+ filenameExtensions.add(fileExtension[j]);
+ }
}
- String[] names = contentTypes[i].getFileSpecs(IContentType.FILE_NAME_SPEC);
+ names = contentTypes[i].getFileSpecs(IContentType.FILE_NAME_SPEC);
for (int j = 0; j < names.length; j++) {
filenames.add(names[j]);
}
}
}
}
- String[] baseTypeFilenameExtensions = combinedBaseExtensions.toArray(new String[combinedBaseExtensions.size()]);
- // move the extensions of the base type to the start to match quicker
String[] stringExtensions = filenameExtensions.toArray(new String[filenameExtensions.size()]);
- for (int i = stringExtensions.length - 1; i > 0; i--) {
- if (Arrays.binarySearch(baseTypeFilenameExtensions, stringExtensions[i]) >= 0) {
- stringExtensions[i] = stringExtensions[i - 1];
- }
- }
// System.out.println("Discovered content types for " + contentTypeId + " in " + (System.currentTimeMillis() - startTime) + "ms");
return new ContentTypeSpecs(filenames.toArray(new String[filenames.size()]), stringExtensions);
}