You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Nikita Timofeev (JIRA)" <ji...@apache.org> on 2016/11/24 11:19:58 UTC

[jira] [Commented] (CAY-2153) Modeler. Exception in save action after reverse engineering some complex DB schema

    [ https://issues.apache.org/jira/browse/CAY-2153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15693011#comment-15693011 ] 

Nikita Timofeev commented on CAY-2153:
--------------------------------------

Reverse Engineering in some cases can end up with invalid ObjAttribute state (invalid DB path) what in turn leads to project can not be edited or saved.
One way of doing this was adding db attribute and map it to vertically inherited object entity's attribute.  After RR object attribute will be mapped to deleted DB attribute causing this bug.

> Modeler. Exception in save action after reverse engineering some complex DB schema
> ----------------------------------------------------------------------------------
>
>                 Key: CAY-2153
>                 URL: https://issues.apache.org/jira/browse/CAY-2153
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Modeler
>    Affects Versions: 4.0.M4
>            Reporter: Nikita Timofeev
>            Assignee: Nikita Timofeev
>
> No test schema available for this exception only stack trace was reported.
> CayenneModeler Info
> Version: 4.0.M4-SNAPSHOT
> Build Date: Nov 14 2016 06:17:32
> Exception: 
> =================================
> org.apache.cayenne.exp.ExpressionException: [v.4.0.M4-SNAPSHOT Nov 14 2016 06:17:32] Can't resolve path component: [test_item.testDbPath].
>     at org.apache.cayenne.map.Entity$PathIterator.next(Entity.java:428)
>     at org.apache.cayenne.map.Entity$PathIterator.next(Entity.java:375)
>     at org.apache.cayenne.map.ObjAttribute.getDbAttribute(ObjAttribute.java:180)
>     at org.apache.cayenne.project.validation.ObjAttributeValidator.validate(ObjAttributeValidator.java:131)
>     at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitObjAttribute(DefaultProjectValidator.java:199)
>     at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitObjEntity(DefaultProjectValidator.java:209)
>     at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitDataMap(DefaultProjectValidator.java:127)
>     at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitDataChannelDescriptor(DefaultProjectValidator.java:110)
>     at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitDataChannelDescriptor(DefaultProjectValidator.java:92)
>     at org.apache.cayenne.configuration.DataChannelDescriptor.acceptVisitor(DataChannelDescriptor.java:111)
>     at org.apache.cayenne.project.validation.DefaultProjectValidator.validate(DefaultProjectValidator.java:89)
>     at org.apache.cayenne.modeler.action.SaveAsAction.performAction(SaveAsAction.java:164)
>     at org.apache.cayenne.modeler.action.SaveAsAction.performAction(SaveAsAction.java:158)
>     at org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:162)
>     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
>     at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
>     at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>     at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
>     at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:125)
>     at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
>     at java.awt.MenuItem.processEvent(MenuItem.java:628)
>     at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:351)
>     at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:339)
>     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:761)
>     at java.awt.EventQueue.access$500(EventQueue.java:97)
>     at java.awt.EventQueue$3.run(EventQueue.java:709)
>     at java.awt.EventQueue$3.run(EventQueue.java:703)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
>     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
>     at java.awt.EventQueue$4.run(EventQueue.java:731)
>     at java.awt.EventQueue$4.run(EventQueue.java:729)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
>     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
>     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
>     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
>     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
>     at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)