diff --git a/services/src/main/java/org/keycloak/services/resources/admin/AuthenticationManagementResource.java b/services/src/main/java/org/keycloak/services/resources/admin/AuthenticationManagementResource.java
index 6c9bba9..54378bf 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/AuthenticationManagementResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/AuthenticationManagementResource.java
@@ -581,7 +581,7 @@ public class AuthenticationManagementResource {
}
public List<AuthenticationExecutionModel> getSortedExecutions(AuthenticationFlowModel parentFlow) {
- List<AuthenticationExecutionModel> executions = realm.getAuthenticationExecutions(parentFlow.getId());
+ List<AuthenticationExecutionModel> executions = new LinkedList<>(realm.getAuthenticationExecutions(parentFlow.getId()));
Collections.sort(executions, AuthenticationExecutionModel.ExecutionComparator.SINGLETON);
return executions;
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/authentication/FlowTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/authentication/FlowTest.java
index 3d4a307..d381bec 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/authentication/FlowTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/authentication/FlowTest.java
@@ -21,6 +21,7 @@ import org.junit.Assert;
import org.junit.Test;
import org.keycloak.representations.idm.AuthenticationExecutionExportRepresentation;
import org.keycloak.representations.idm.AuthenticationFlowRepresentation;
+import org.keycloak.testsuite.admin.ApiUtil;
import javax.ws.rs.BadRequestException;
import javax.ws.rs.core.Response;
@@ -172,4 +173,22 @@ public class FlowTest extends AbstractAuthenticationTest {
compareFlows(browser, copyOfBrowser);
}
+ @Test
+ // KEYCLOAK-2580
+ public void addExecutionFlow() {
+ HashMap<String, String> params = new HashMap<>();
+ params.put("newName", "parent");
+ Response response = authMgmtResource.copy("browser", params);
+ Assert.assertEquals(201, response.getStatus());
+ response.close();
+
+ params = new HashMap<>();
+ params.put("alias", "child");
+ params.put("description", "Description");
+ params.put("provider", "registration-page-form");
+ params.put("type", "basic-flow");
+
+ authMgmtResource.addExecutionFlow("parent", params);
+ }
+
}