| Summary: | JPA diagram editor fails to update new entity in persistence.xml | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [WebTools] Dali JPA Tools | Reporter: | Ram Venkataswamy <ram.venkataswamy> | ||||||||||||||
| Component: | Diagram Editor | Assignee: | Stefan Dimov <stefan.dimov> | ||||||||||||||
| Status: | RESOLVED FIXED | QA Contact: | Stefan Dimov <stefan.dimov> | ||||||||||||||
| Severity: | normal | ||||||||||||||||
| Priority: | P3 | ||||||||||||||||
| Version: | 0.5 | ||||||||||||||||
| Target Milestone: | 0.5 RC3 | ||||||||||||||||
| Hardware: | PC | ||||||||||||||||
| OS: | Windows 7 | ||||||||||||||||
| Whiteboard: | |||||||||||||||||
| Attachments: |
|
||||||||||||||||
|
Description
Ram Venkataswamy
Created attachment 178482 [details]
patch
I've tried the patch and when you create a new entity it's being successfully registered in the persistence.xml, but after that when I rename the entity it's name doesn't change in the persistence.xml and I get error like this: org.eclipse.core.internal.resources.ResourceException: Resource '/JPA10/src/org/persistence/Entity1.java' does not exist. at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:326) at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:200) at org.eclipse.core.internal.resources.File.getContents(File.java:291) at org.eclipse.jdt.internal.core.util.Util.getResourceContentsAsCharArray(Util.java:1186) at org.eclipse.jdt.internal.core.CompilationUnit.getContents(CompilationUnit.java:649) at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1110) at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:801) at org.eclipse.jpt.core.internal.utility.jdt.ASTTools.buildASTRoot(ASTTools.java:50) at org.eclipse.jpt.core.internal.resource.java.source.SourceCompilationUnit.buildASTRoot(SourceCompilationUnit.java:183) at org.eclipse.jpt.core.internal.context.java.AbstractJavaPersistentType.buildASTRoot(AbstractJavaPersistentType.java:654) at org.eclipse.jpt.core.internal.context.java.AbstractJavaPersistentType.validate(AbstractJavaPersistentType.java:595) at org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericClassRef.validateJavaPersistentType(GenericClassRef.java:293) at org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericClassRef.validate(GenericClassRef.java:287) at org.eclipse.jpt.core.internal.context.persistence.AbstractPersistenceUnit.validateClassRefs(AbstractPersistenceUnit.java:1522) at org.eclipse.jpt.core.internal.context.persistence.AbstractPersistenceUnit.validate(AbstractPersistenceUnit.java:1458) at org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericPersistence.validatePersistenceUnit(GenericPersistence.java:282) at org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericPersistence.validate(GenericPersistence.java:234) at org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericPersistenceXml.validate(GenericPersistenceXml.java:226) at org.eclipse.jpt.core.internal.jpa1.context.GenericRootContextNode.validate(GenericRootContextNode.java:201) at org.eclipse.jpt.core.internal.AbstractJpaProject.validate(AbstractJpaProject.java:1303) at org.eclipse.jpt.core.internal.AbstractJpaProject.validationMessages(AbstractJpaProject.java:1294) at org.eclipse.jpt.core.internal.validation.JpaValidator.validationMessages(JpaValidator.java:107) at org.eclipse.jpt.core.internal.validation.JpaValidator.validate(JpaValidator.java:91) at org.eclipse.jpt.core.internal.validation.JpaValidator.validate(JpaValidator.java:72) at org.eclipse.wst.validation.Validator$V2.validate(Validator.java:1159) at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:704) at org.eclipse.wst.validation.internal.ValManager$1.visit(ValManager.java:665) at org.eclipse.wst.validation.internal.ValManager.accept(ValManager.java:783) at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:669) at org.eclipse.wst.validation.internal.ValBuilderJob$Visitor.visit(ValBuilderJob.java:321) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:68) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:79) at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:48) at org.eclipse.wst.validation.internal.ValBuilderJob.deltaBuild(ValBuilderJob.java:211) at org.eclipse.wst.validation.internal.ValBuilderJob.run(ValBuilderJob.java:179) at org.eclipse.wst.validation.internal.ValBuilderJob.runInWorkspace(ValBuilderJob.java:126) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Created attachment 178612 [details]
patch
This patch fix this exception...
Seems that the patch works, but it messes up with something else. 1. Apply the patch 2. Create JPA project and leave the option, which requires the entities to be listed in the pers...xml 3. Open the diagram for that editor 4. Create two entities through the diagram 5. Create 1-1 bidir rel between them 6. Rename the owner 7. Create a third entity in the diagram 8. Try to create 1-1 bidir rel from the owner of the first rel to the new entity. Result: The diagram freezes for a while, the rel won't be created and in the error log appears: java.lang.NullPointerException at org.eclipse.jpt.ui.diagrameditor.util.JpaArtifactFactory.addOneToOneRelation(JpaArtifactFactory.java:126) at org.eclipse.jpt.ui.diagrameditor.util.JpaArtifactFactory.addOneToOneBidirectionalRelation(JpaArtifactFactory.java:116) at org.eclipse.jpt.ui.diagrameditor.relations.OneToOneBiDirRelation.createRelation(OneToOneBiDirRelation.java:95) at org.eclipse.jpt.ui.diagrameditor.relations.OneToOneBiDirRelation.<init>(OneToOneBiDirRelation.java:37) at org.eclipse.jpt.ui.diagrameditor.feature.CreateOneToOneBiDirRelationFeature.createRelation(CreateOneToOneBiDirRelationFeature.java:53) at org.eclipse.jpt.ui.diagrameditor.feature.CreateOneToOneBiDirRelationFeature.createRelation(CreateOneToOneBiDirRelationFeature.java:1) at org.eclipse.jpt.ui.diagrameditor.feature.CreateRelationFeature.create(CreateRelationFeature.java:57) at org.eclipse.graphiti.features.impl.AbstractCreateConnectionFeature.execute(AbstractCreateConnectionFeature.java:96) at org.eclipse.graphiti.internal.command.GenericFeatureCommandWithContext.execute(GenericFeatureCommandWithContext.java:64) at org.eclipse.graphiti.internal.command.GFPreparableCommand.doExecute(GFPreparableCommand.java:37) at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135) at org.eclipse.emf.workspace.EMFCommandOperation.doExecute(EMFCommandOperation.java:119) at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:511) at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.doExecute(WorkspaceCommandStackImpl.java:208) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165) at org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl.execute(GFWorkspaceCommandStackImpl.java:47) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219) at org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl.execute(GFWorkspaceCommandStackImpl.java:39) at org.eclipse.graphiti.internal.command.CommandExec.executeCommand(CommandExec.java:74) at org.eclipse.graphiti.ui.internal.command.CreateConnectionCommand.execute(CreateConnectionCommand.java:166) at org.eclipse.gef.commands.CommandStack.execute(CommandStack.java:197) at org.eclipse.gef.tools.AbstractTool.executeCommand(AbstractTool.java:426) at org.eclipse.gef.tools.AbstractTool.executeCurrentCommand(AbstractTool.java:443) at org.eclipse.gef.tools.AbstractConnectionCreationTool.handleCreateConnection(AbstractConnectionCreationTool.java:256) at org.eclipse.gef.tools.ConnectionCreationTool.handleButtonDown(ConnectionCreationTool.java:77) at org.eclipse.gef.tools.AbstractTool.mouseDown(AbstractTool.java:1097) at org.eclipse.gef.EditDomain.mouseDown(EditDomain.java:245) at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMousePressed(DomainEventDispatcher.java:348) at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDown(LightweightSystem.java:523) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:185) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383) Created attachment 178998 [details]
patch
I'm still able to reproduce the problem, although more rarely than before. Besides, the patch breaks the test plugin - it's no more compileable. Created attachment 180131 [details]
Register Entity in persistence.xml patch
Created attachment 180132 [details]
fix tests
Created attachment 180489 [details]
Register Entities in XML
The previous patch seems ok with a little correction in it, so I'm attaching this new one, which also merges the previous one with the tests patch
Patch committed |