ambari git commit: AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception (dlysnichenko)
Repository: ambari Updated Branches: refs/heads/trunk c36ec9091 - eef00a9ec AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception (dlysnichenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/eef00a9e Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/eef00a9e Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/eef00a9e Branch: refs/heads/trunk Commit: eef00a9ec7d9561eeac087d743a852e3d34d67ba Parents: c36ec90 Author: Lisnichenko Dmitro dlysniche...@hortonworks.com Authored: Fri May 15 14:09:51 2015 +0300 Committer: Lisnichenko Dmitro dlysniche...@hortonworks.com Committed: Fri May 15 14:09:51 2015 +0300 -- .../internal/WidgetLayoutResourceProvider.java | 9 .../entities/WidgetLayoutUserWidgetEntity.java | 8 +++ .../WidgetLayoutResourceProviderTest.java | 23 .../ambari/server/orm/dao/WidgetDAOTest.java| 3 ++- .../server/orm/dao/WidgetLayoutDAOTest.java | 2 -- 5 files changed, 33 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/ambari/blob/eef00a9e/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java -- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java index 8f068d5..174a106 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java @@ -286,6 +286,15 @@ public class WidgetLayoutResourceProvider extends AbstractControllerResourceProv Set widgetsSet = (LinkedHashSet) propertyMap.get(WIDGETLAYOUT_WIDGETS_PROPERTY_ID); + //Remove old relations from widget entities + for (WidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntity : entity.getListWidgetLayoutUserWidgetEntity()) { + widgetLayoutUserWidgetEntity.getWidget().getListWidgetLayoutUserWidgetEntity() +.remove(widgetLayoutUserWidgetEntity); +widgetDAO.merge(widgetLayoutUserWidgetEntity.getWidget()); + } + entity.setListWidgetLayoutUserWidgetEntity(new LinkedListWidgetLayoutUserWidgetEntity()); + widgetLayoutDAO.merge(entity); + ListWidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntityList = new LinkedListWidgetLayoutUserWidgetEntity(); int order=0; for (Object widgetObject : widgetsSet) { http://git-wip-us.apache.org/repos/asf/ambari/blob/eef00a9e/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java -- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java index 1d6e1b5..dbae31b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java @@ -17,6 +17,7 @@ */ package org.apache.ambari.server.orm.entities; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @@ -43,7 +44,7 @@ public class WidgetLayoutUserWidgetEntity { @JoinColumn(name = widget_layout_id, referencedColumnName = id) private WidgetLayoutEntity widgetLayout; - @ManyToOne + @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}) @JoinColumn(name = widget_id, referencedColumnName = id) private WidgetEntity widget; @@ -97,10 +98,7 @@ public class WidgetLayoutUserWidgetEntity { WidgetLayoutUserWidgetEntity that = (WidgetLayoutUserWidgetEntity) o; -if (widgetLayout.getId() != that.widgetLayout.getId()) return false; -if (widget.getId() != that.widget.getId()) return false; - -return true; +return (widgetLayout.equals(that.widgetLayout) widget.equals(that.widget)); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/eef00a9e/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java -- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java
ambari git commit: AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception.
Repository: ambari Updated Branches: refs/heads/trunk 3d9072733 - 501afc0f5 AMBARI-11149. Widgets: attempted to move/add/delete a widget causes exception. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/501afc0f Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/501afc0f Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/501afc0f Branch: refs/heads/trunk Commit: 501afc0f58c65eaeccf6c388ae6100c2c3d31048 Parents: 3d90727 Author: Siddharth Wagle swa...@hortonworks.com Authored: Thu May 14 16:07:19 2015 -0700 Committer: Siddharth Wagle swa...@hortonworks.com Committed: Thu May 14 16:07:19 2015 -0700 -- .../internal/WidgetLayoutResourceProvider.java | 9 .../entities/WidgetLayoutUserWidgetEntity.java | 8 +++ .../WidgetLayoutResourceProviderTest.java | 23 3 files changed, 31 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/ambari/blob/501afc0f/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java -- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java index 8f068d5..174a106 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProvider.java @@ -286,6 +286,15 @@ public class WidgetLayoutResourceProvider extends AbstractControllerResourceProv Set widgetsSet = (LinkedHashSet) propertyMap.get(WIDGETLAYOUT_WIDGETS_PROPERTY_ID); + //Remove old relations from widget entities + for (WidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntity : entity.getListWidgetLayoutUserWidgetEntity()) { + widgetLayoutUserWidgetEntity.getWidget().getListWidgetLayoutUserWidgetEntity() +.remove(widgetLayoutUserWidgetEntity); +widgetDAO.merge(widgetLayoutUserWidgetEntity.getWidget()); + } + entity.setListWidgetLayoutUserWidgetEntity(new LinkedListWidgetLayoutUserWidgetEntity()); + widgetLayoutDAO.merge(entity); + ListWidgetLayoutUserWidgetEntity widgetLayoutUserWidgetEntityList = new LinkedListWidgetLayoutUserWidgetEntity(); int order=0; for (Object widgetObject : widgetsSet) { http://git-wip-us.apache.org/repos/asf/ambari/blob/501afc0f/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java -- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java index 1d6e1b5..dbae31b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetLayoutUserWidgetEntity.java @@ -17,6 +17,7 @@ */ package org.apache.ambari.server.orm.entities; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @@ -43,7 +44,7 @@ public class WidgetLayoutUserWidgetEntity { @JoinColumn(name = widget_layout_id, referencedColumnName = id) private WidgetLayoutEntity widgetLayout; - @ManyToOne + @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}) @JoinColumn(name = widget_id, referencedColumnName = id) private WidgetEntity widget; @@ -97,10 +98,7 @@ public class WidgetLayoutUserWidgetEntity { WidgetLayoutUserWidgetEntity that = (WidgetLayoutUserWidgetEntity) o; -if (widgetLayout.getId() != that.widgetLayout.getId()) return false; -if (widget.getId() != that.widget.getId()) return false; - -return true; +return (widgetLayout.equals(that.widgetLayout) widget.equals(that.widget)); } @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/501afc0f/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java -- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetLayoutResourceProviderTest.java index 1a9e230..8184d34 100644 ---