Major
Nice to have
Detail
#25217
Layout-Export führt zu invaliden Komponenten-Referenzen bei Referenzierung einer bestehenden Komponente
#25327
Modell-Editor: Falsche Kompositionsmarker, wenn Container-Typ in Diagramm von Content-Typ gezogen wird
Bugfix
Legt man im Modell-Editor (im Diagramm) eine zyklische Vererbungshierarchie an (A extends B, B extends A) wird dies nicht verhindert um im Anschluss crasht die Anwendung mit einem OutOfMemoryError beim Ausrechnen von Pfaden:
2020-09-14 08:30:03,784 ERROR [qtp110456297-2365]: top_logic.util.error.ErrorHandlingHelper - Command 'dispatchControlCommand' failed. com.top_logic.util.error.TopLogicException: Internal error at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:179) at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatch(CommandDispatcher.java:94) at com.top_logic.mig.html.layout.CommandDispatcher.dispatchCommand(CommandDispatcher.java:77) at com.top_logic.base.services.simpleajax.AJAXServlet.processRequest(AJAXServlet.java:638) at com.top_logic.base.services.simpleajax.AJAXServlet.doPost(AJAXServlet.java:356) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at com.top_logic.util.TopLogicServlet.doService(TopLogicServlet.java:336) at com.top_logic.util.TopLogicServlet.inContext(TopLogicServlet.java:193) at com.top_logic.util.TopLogicServlet$1.inContext(TopLogicServlet.java:268) at com.top_logic.util.TLContextManager.inInteractionInternal(TLContextManager.java:243) at com.top_logic.util.TLContextManager.inInteraction(TLContextManager.java:219) at com.top_logic.util.TopLogicServlet.enterContext(TopLogicServlet.java:263) at com.top_logic.util.TopLogicServlet.service(TopLogicServlet.java:156) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1411) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1651) at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1638) at com.top_logic.knowledge.gui.layout.HttpSecureHeaderFilter.doFilter(HttpSecureHeaderFilter.java:64) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1630) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:567) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:501) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3181) at java.util.ArrayList.grow(ArrayList.java:267) at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:241) at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:233) at java.util.ArrayList.add(ArrayList.java:464) at com.top_logic.layout.table.tree.AbstractTreeTableComponent.createPath(AbstractTreeTableComponent.java:901) at com.top_logic.layout.table.tree.AbstractTreeTableComponent.setSelected(AbstractTreeTableComponent.java:846) at com.top_logic.layout.table.tree.AbstractTreeTableComponent.receiveModelSetBySlaveEvent(AbstractTreeTableComponent.java:330) at com.top_logic.mig.html.layout.ModelEventAdapter.handleModelEvent(ModelEventAdapter.java:44) at com.top_logic.knowledge.gui.layout.TLMainLayout$EventHandler.dispatchEvent(TLMainLayout.java:276) at com.top_logic.knowledge.gui.layout.TLMainLayout$EventHandler.dispatchModelSetEvent(TLMainLayout.java:247) at com.top_logic.knowledge.gui.layout.TLMainLayout$EventHandler.broadcastModelEvent(TLMainLayout.java:188) at com.top_logic.knowledge.gui.layout.TLMainLayout.broadcastModelEvent(TLMainLayout.java:74) at com.top_logic.mig.html.layout.LayoutComponent.internalFireModelEvent(LayoutComponent.java:1754) at com.top_logic.mig.html.layout.ComponentEvent.execute(ComponentEvent.java:57) at com.top_logic.util.DefaultValidationQueue.actualExecute(DefaultValidationQueue.java:171) at com.top_logic.util.DefaultValidationQueue.executeAction(DefaultValidationQueue.java:150) at com.top_logic.util.DefaultValidationQueue.enqueueAction(DefaultValidationQueue.java:56) at com.top_logic.util.DefaultValidationQueue.enqueueAction(DefaultValidationQueue.java:25) at com.top_logic.layout.internal.SubsessionHandler.enqueueAction(SubsessionHandler.java:330) at com.top_logic.layout.internal.SubsessionHandler.enqueueAction(SubsessionHandler.java:73) at com.top_logic.mig.html.layout.LayoutComponent.enqueueEvent(LayoutComponent.java:1734) at com.top_logic.mig.html.layout.LayoutComponent.fireModelEvent(LayoutComponent.java:1720) at com.top_logic.mig.html.layout.LayoutComponent.broadcastModelSet(LayoutComponent.java:2745) at com.top_logic.mig.html.layout.LayoutComponent.afterModelSet(LayoutComponent.java:2704) at com.top_logic.tool.boundsec.BoundComponent.afterModelSet(BoundComponent.java:698) at com.top_logic.mig.html.layout.LayoutComponent.setModel(LayoutComponent.java:2549) at com.top_logic.graph.diagramjs.server.DiagramJSGraphComponent.updateParentSelection(DiagramJSGraphComponent.java:560) at com.top_logic.graph.diagramjs.server.DiagramJSGraphComponent.setSelected(DiagramJSGraphComponent.java:553) at com.top_logic.layout.channel.SelectionChannel$Impl.set(SelectionChannel.java:93) at com.top_logic.graph.diagramjs.server.DiagramJSGraphComponent$2.handleAttributeUpdate(DiagramJSGraphComponent.java:316) at com.top_logic.common.remote.listener.AbstractAttributeObservable$Listeners.handleAttributeUpdate(AbstractAttributeObservable.java:81)
Test
- Neues Modul mit Typen A` und `B anlegen.
- Vererbungs A` extends `B anlegen.
- Erwartung: Funktioniert.
- Vererbung B` extends `A anlegen.
- Erwartung: Fehlermeldung: Zyklische Vererbungsbeziehung.