Skip to content

Commit c17aa3d

Browse files
authoredApr 28, 2021
Merge pull request #580 from magento/576-Java.lang.IllegalArgumentException_During_adding_a_new_method_into_an_existing_plugin
Fixed `Java.lang.IllegalArgumentException` During adding a new method…
2 parents a5b8bba + 9fd8ec1 commit c17aa3d

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed
 

‎CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
99
### Fixed
1010

1111
- New entity layout name and edit entity layout name inside it
12+
- `Java.lang.IllegalArgumentException` During adding a new method into an existing plugin
1213

1314
## 3.2.1
1415

‎resources/META-INF/pluginIcon.svg

+7-1
Loading

‎src/com/magento/idea/magento2plugin/actions/generation/PluginGenerateMethodHandlerBase.java

+15-7
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import gnu.trove.THashSet;
4545
import java.util.ArrayList;
4646
import java.util.Collection;
47-
import java.util.Collections;
4847
import java.util.Iterator;
4948
import java.util.List;
5049
import java.util.Locale;
@@ -318,18 +317,27 @@ public static Collection<PhpNamedElementNode> fixOrderToBeAsOriginalFiles(
318317
final PhpNamedElementNode... selected
319318
) {
320319
final List<PhpNamedElementNode> newSelected = ContainerUtil.newArrayList(selected);
321-
Collections.sort(newSelected, (o1, o2) -> {
320+
newSelected.sort((o1, o2) -> {
322321
final PsiElement psiElement = o1.getPsiElement();
323322
final PsiElement psiElement2 = o2.getPsiElement();
324323
final PsiFile containingFile = psiElement.getContainingFile();
325324
final PsiFile containingFile2 = psiElement2.getContainingFile();
326325
return containingFile.equals(containingFile2)
327-
? psiElement.getTextOffset() - psiElement2.getTextOffset()
328-
: containingFile.getName().compareTo(containingFile2.getName());
326+
? psiElement.getTextOffset() - psiElement2.getTextOffset()
327+
: getDocumentPosition(containingFile, containingFile2);
329328
});
330329
return newSelected;
331330
}
332331

332+
private static int getDocumentPosition(
333+
final PsiFile containingFile,
334+
final PsiFile containingFile2
335+
) {
336+
return containingFile.getVirtualFile().getPresentableUrl().compareTo(
337+
containingFile2.getVirtualFile().getPresentableUrl()
338+
);
339+
}
340+
333341
private static int getSuitableEditorPosition(final Editor editor, final PhpFile phpFile) {
334342
final PsiElement currElement = phpFile.findElementAt(editor.getCaretModel().getOffset());
335343
if (currElement != null) {
@@ -371,9 +379,9 @@ private static boolean isClassMember(final PsiElement element) {
371379
return false;
372380
}
373381
final IElementType elementType = element.getNode().getElementType();
374-
return elementType == PhpElementTypes.CLASS_FIELDS
375-
|| elementType == PhpElementTypes.CLASS_CONSTANTS
376-
|| elementType == PhpStubElementTypes.CLASS_METHOD;
382+
return elementType.equals(PhpElementTypes.CLASS_FIELDS)
383+
|| elementType.equals(PhpElementTypes.CLASS_CONSTANTS)
384+
|| elementType.equals(PhpStubElementTypes.CLASS_METHOD);
377385
}
378386

379387
private static int getNextPos(final PsiElement element) {

0 commit comments

Comments
 (0)
Please sign in to comment.