| Summary: | VPG update problem | ||
|---|---|---|---|
| Product: | [Tools] PTP | Reporter: | Matthew Fotzler <incongruous> |
| Component: | Photran.Refactoring Engine | Assignee: | Photran Inbox <photran-inbox> |
| Status: | NEW --- | QA Contact: | |
| Severity: | normal | ||
| Priority: | P2 | CC: | com-eclipse-dot-org |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | Macintosh | ||
| OS: | Mac OS X | ||
| Whiteboard: | |||
I'm noticing that when I call listAllModules(), if I close a project, the modules still are listed until I clear and rebuild the VPG database. I made calls to ensure the database is up-to-date in the refactoring and input page, but it didn't change anything. If I rebuild the database, open a project, and then run the refactoring without rebuilding again, I get two different errors.. one of them is with control flow analysis and the other appears to be with name binding.. they both seem to be having issues with the same index, which is probably from the newly opened project that isn't in the VPG database. java.lang.ArrayIndexOutOfBoundsException: 280208 at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.getChunk(Database.java:232) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.putInt(Database.java:380) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.removeBlock(Database.java:331) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.malloc(Database.java:282) at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB$Edges.createNewRecord(InternalCDTDB.java:784) at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB$Edges.ensure(InternalCDTDB.java:848) at org.eclipse.rephraserengine.core.vpg.db.cdt.CDTDB.ensure(CDTDB.java:500) at org.eclipse.rephraserengine.core.vpg.db.profiling.ProfilingDB.ensure(ProfilingDB.java:345) at org.eclipse.rephraserengine.core.vpg.db.caching.CachingDB.ensure(CachingDB.java:246) at org.eclipse.photran.internal.core.analysis.flow.ControlFlowAnalysis.createFlow(ControlFlowAnalysis.java:127) at org.eclipse.photran.internal.core.analysis.flow.ControlFlowAnalysis.flowTo(ControlFlowAnalysis.java:133) at org.eclipse.photran.internal.core.analysis.flow.ControlFlowAnalysis.visitIExecutableConstruct(ControlFlowAnalysis.java:162) at org.eclipse.photran.internal.core.analysis.flow.ControlFlowAnalysis.visitIActionStmt(ControlFlowAnalysis.java:154) at org.eclipse.photran.internal.core.parser.ASTAssignmentStmtNode.accept(ASTAssignmentStmtNode.java:186) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTListNode(ASTVisitor.java:26) at org.eclipse.photran.internal.core.parser.ASTListNode.accept(ASTListNode.java:130) at org.eclipse.photran.internal.core.analysis.flow.ControlFlowAnalysis.visitASTIfConstructNode(ControlFlowAnalysis.java:389) at org.eclipse.photran.internal.core.parser.ASTIfConstructNode.accept(ASTIfConstructNode.java:100) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTListNode(ASTVisitor.java:26) at org.eclipse.photran.internal.core.parser.ASTListNode.accept(ASTListNode.java:130) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTSubroutineSubprogramNode(ASTVisitor.java:359) at org.eclipse.photran.internal.core.parser.ASTSubroutineSubprogramNode.accept(ASTSubroutineSubprogramNode.java:100) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTListNode(ASTVisitor.java:26) at org.eclipse.photran.internal.core.parser.ASTListNode.accept(ASTListNode.java:130) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTModuleNode(ASTVisitor.java:259) at org.eclipse.photran.internal.core.parser.ASTModuleNode.accept(ASTModuleNode.java:74) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTListNode(ASTVisitor.java:26) at org.eclipse.photran.internal.core.parser.ASTListNode.accept(ASTListNode.java:130) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTExecutableProgramNode(ASTVisitor.java:176) at org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode.accept(ASTExecutableProgramNode.java:61) at org.eclipse.photran.internal.core.analysis.flow.ControlFlowAnalysis.analyze(ControlFlowAnalysis.java:98) at org.eclipse.photran.internal.core.vpg.PhotranVPGBuilder.populateVPG(PhotranVPGBuilder.java:472) at org.eclipse.photran.internal.core.vpg.PhotranVPGBuilder.populateVPG(PhotranVPGBuilder.java:1) at org.eclipse.rephraserengine.core.vpg.VPG.computeEdgesAndAnnotations(VPG.java:203) at org.eclipse.rephraserengine.core.vpg.VPG.acquireTransientAST(VPG.java:147) at org.eclipse.rephraserengine.core.vpg.VPG.forceRecomputationOfEdgesAndAnnotations(VPG.java:291) at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG$VPGResourceDeltaVisitor.index(EclipseVPG.java:375) at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG$VPGResourceDeltaJob.runInWorkspace(EclipseVPG.java:266) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- java.lang.reflect.InvocationTargetException at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275) at org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:960) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:995) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:970) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.checkInitialConditions(RefactoringWizardOpenOperation.java:205) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.access$0(RefactoringWizardOpenOperation.java:200) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:163) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:192) at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:115) at org.eclipse.rephraserengine.internal.ui.actions.RefactoringAction.run(RefactoringAction.java:140) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275) at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1162) at org.eclipse.ui.internal.progress.ProgressManager$RunnableWithStatus.run(ProgressManager.java:1346) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.progress.ProgressManager$7.run(ProgressManager.java:1184) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4233) at org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1182) at org.eclipse.rephraserengine.internal.ui.actions.RefactoringAction.run(RefactoringAction.java:116) at org.eclipse.rephraserengine.internal.ui.actions.RefactoringAction.run(RefactoringAction.java:99) at org.eclipse.rephraserengine.ui.menus.RefactorMenu$EditorRefactoringContributionItem$1.widgetSelected(RefactorMenu.java:322) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1187) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3622) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3277) 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(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) 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) Caused by: java.lang.Error: java.lang.ArrayIndexOutOfBoundsException: 280208 at org.eclipse.photran.internal.core.analysis.binding.BindingCollector.addDefinition(BindingCollector.java:88) at org.eclipse.photran.internal.core.analysis.binding.DefinitionCollector.visitASTProgramStmtNode(DefinitionCollector.java:338) at org.eclipse.photran.internal.core.parser.ASTProgramStmtNode.accept(ASTProgramStmtNode.java:75) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTMainProgramNode(ASTVisitor.java:251) at org.eclipse.photran.internal.core.parser.ASTMainProgramNode.accept(ASTMainProgramNode.java:100) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTListNode(ASTVisitor.java:26) at org.eclipse.photran.internal.core.parser.ASTListNode.accept(ASTListNode.java:130) at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21) at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTExecutableProgramNode(ASTVisitor.java:176) at org.eclipse.photran.internal.core.analysis.binding.DefinitionCollector.visitASTExecutableProgramNode(DefinitionCollector.java:535) at org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode.accept(ASTExecutableProgramNode.java:61) at org.eclipse.photran.internal.core.FortranAST.accept(FortranAST.java:56) at org.eclipse.photran.internal.core.analysis.binding.Binder.bind(Binder.java:45) at org.eclipse.photran.internal.core.vpg.PhotranVPGBuilder.populateVPG(PhotranVPGBuilder.java:468) at org.eclipse.photran.internal.core.vpg.PhotranVPGBuilder.populateVPG(PhotranVPGBuilder.java:1) at org.eclipse.rephraserengine.core.vpg.VPG.computeEdgesAndAnnotations(VPG.java:203) at org.eclipse.rephraserengine.core.vpg.VPG.acquireTransientAST(VPG.java:147) at org.eclipse.rephraserengine.core.vpg.VPG.forceRecomputationOfEdgesAndAnnotations(VPG.java:291) at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG.indexIfNotUpToDate(EclipseVPG.java:406) at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG$WorkspaceSyncResourceVisitor.index(EclipseVPG.java:207) at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG.ensureVPGIsUpToDate(EclipseVPG.java:132) at org.eclipse.rephraserengine.core.vpg.refactoring.VPGRefactoring.checkInitialConditions(VPGRefactoring.java:63) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:83) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) Caused by: java.lang.ArrayIndexOutOfBoundsException: 280208 at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.getChunk(Database.java:232) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.putInt(Database.java:380) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.removeBlock(Database.java:331) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.malloc(Database.java:282) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.ShortString.<init>(ShortString.java:56) at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.newString(Database.java:415) at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB$Files.setFilename(InternalCDTDB.java:195) at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB$Files.createNewRecord(InternalCDTDB.java:211) at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB$Files.ensure(InternalCDTDB.java:264) at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB$Edges.ensure(InternalCDTDB.java:843) at org.eclipse.rephraserengine.core.vpg.db.cdt.CDTDB.ensure(CDTDB.java:500) at org.eclipse.rephraserengine.core.vpg.db.profiling.ProfilingDB.ensure(ProfilingDB.java:345) at org.eclipse.rephraserengine.core.vpg.db.caching.CachingDB.ensure(CachingDB.java:246) at org.eclipse.photran.internal.core.vpg.PhotranVPGBuilder.markScope(PhotranVPGBuilder.java:104) at org.eclipse.photran.internal.core.analysis.binding.BindingCollector.addDefinition(BindingCollector.java:79) ... 27 more