diff --git a/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java b/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java
index 13201f8f993a..52a1920a1d9b 100644
--- a/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java
+++ b/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java
@@ -74,7 +74,7 @@ public class RelaxedHtmlFromSchemaElementDescriptor extends XmlElementDescriptor
return descriptors;
}
for (XmlAttributeDescriptorsProvider provider: Extensions.getExtensions(XmlAttributeDescriptorsProvider.EP_NAME)) {
- descriptors = ArrayUtil.mergeArrays(descriptors, provider.getAttributeDescriptors(context));
+ descriptors = ArrayUtil.mergeArrays(descriptors, provider.getAttributeDescriptors(context), XmlAttributeDescriptor.ARRAY_FACTORY);
}
return descriptors;
}
diff --git a/xml/openapi/src/com/intellij/xml/XmlAttributeDescriptor.java b/xml/openapi/src/com/intellij/xml/XmlAttributeDescriptor.java
index 545028c0d8aa..e279ed71c684 100644
--- a/xml/openapi/src/com/intellij/xml/XmlAttributeDescriptor.java
+++ b/xml/openapi/src/com/intellij/xml/XmlAttributeDescriptor.java
@@ -18,6 +18,7 @@ package com.intellij.xml;
import com.intellij.psi.meta.PsiMetaData;
import com.intellij.psi.xml.XmlElement;
+import com.intellij.util.ArrayFactory;
import org.jetbrains.annotations.Nullable;
/**
@@ -25,6 +26,12 @@ import org.jetbrains.annotations.Nullable;
*/
public interface XmlAttributeDescriptor extends PsiMetaData {
XmlAttributeDescriptor[] EMPTY = new XmlAttributeDescriptor[0];
+ ArrayFactory ARRAY_FACTORY = new ArrayFactory() {
+ @Override
+ public XmlAttributeDescriptor[] create(int count) {
+ return new XmlAttributeDescriptor[count];
+ }
+ };
boolean isRequired();
boolean isFixed();