Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Null Pointer Exception using refactoring operations in Photran

Hi Dave,

In your runtime workspace, try clicking on Refactor > (Debugging) > Clear and Rebuild Database.

If Eclipse is forcibly terminated (among other things), the database that holds name bindings, etc. can become corrupted, which is probably what you're seeing.  Those errors should never happen under normal operation.

Photran keeps a lock file around to try to determine when Eclipse was shut down uncleanly (then it just clears and rebuilds the database automatically), but that doesn't work 100% of the time, obviously...

Jeff

On 7/25/12 3:43 PM, David A. Alexander wrote:

We are encounter the following errors after a few Extract Procedure refactoring operations performed.  First, we see the following exception..

Description: org.eclipse.core.runtime.CoreException: Already Freed
org.eclipse.core.runtime.CoreException: Already Freed
at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.Database.free(Database.java:366)
at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB $Annotations.delete(InternalCDTDB.java:1219)
at org.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB $Annotations.set(InternalCDTDB.java:1210)
at org.eclipse.rephraserengine.core.vpg.db.cdt.CDTDB.setAnnotation(CDTDB.java:694)
at org.eclipse.rephraserengine.core.vpg.db.caching.CachingDB.setAnnotation(CachingDB.java:344)
at org.eclipse.rephraserengine.core.vpg.db.profiling.ProfilingDB.setAnnotation(ProfilingDB.java:383)
at org.eclipse.rephraserengine.core.vpg.DemandDB.setAnnotation(DemandDB.java:309)
at org.eclipse.rephraserengine.core.vpg.VPGDB.setAnnotation(VPGDB.java:305)
at org.eclipse.photran.internal.core.vpg.PhotranVPGWriter.setDefinitionFor(PhotranVPGWriter.java:109)
at org.eclipse.photran.internal.core.analysis.binding.BindingCollector.setDefinition(BindingCollector.java:58)
at org.eclipse.photran.internal.core.analysis.binding.DefinitionCollector.visitASTTypeDeclarationStmtNode(DefinitionCollector.java:171)
at org.eclipse.photran.internal.core.parser.ASTTypeDeclarationStmtNode.accept(ASTTypeDeclarationStmtNode.java:91)
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:131)
at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21)
at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTFunctionSubprogramNode(ASTVisitor.java:203)
at org.eclipse.photran.internal.core.parser.ASTFunctionSubprogramNode.accept(ASTFunctionSubprogramNode.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:131)
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:131)
at org.eclipse.photran.internal.core.parser.ASTVisitor.traverseChildren(ASTVisitor.java:21)
at org.eclipse.photran.internal.core.parser.ASTVisitor.visitASTExecutableProgramNode(ASTVisitor.java:175)
at org.eclipse.photran.internal.core.analysis.binding.DefinitionCollector.visitASTExecutableProgramNode(DefinitionCollector.java:537)
at org.eclipse.photran.internal.core.parser.ASTExecutableProgramNode.accept(ASTExecutableProgramNode.java:61)
at org.eclipse.photran.internal.core.FortranAST.accept(FortranAST.java:53)
at org.eclipse.photran.internal.core.analysis.binding.Binder.bind(Binder.java:45)
at org.eclipse.photran.internal.core.vpg.PhotranVPGWriter.populateVPG(PhotranVPGWriter.java:588)
at org.eclipse.photran.internal.core.vpg.PhotranVPGWriter.populateVPG(PhotranVPGWriter.java:1)
at org.eclipse.rephraserengine.core.vpg.VPGWriter.computeEdgesAndAnnotations(VPGWriter.java:65)
at org.eclipse.rephraserengine.core.vpg.ASTRepository.acquireTransientAST(ASTRepository.java:87)
at org.eclipse.rephraserengine.core.vpg.VPG.forceRecomputationOfEdgesAndAnnotations(VPG.java:432)
at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG $VPGResourceDeltaVisitor.index(EclipseVPG.java:447)
at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG $VPGResourceDeltaJob.runInWorkspace(EclipseVPG.java:336)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.Exception
... 42 more
Resource:  Path:  Location: line -1 


Without performing any further operations, after say 2-3 mins or so, a null pointer exception pops up in a separate window (see attachment) automatically.  When the null pointer exception occurs, we see the following BTree integrity error in the 'Fortran Analysis/Refactoring Problems' view:


Description: org.eclipse.core.runtime.CoreException: BTree integrity
error
org.eclipse.core.runtime.CoreException: BTree integrity error
at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.BTree.deleteImp(BTree.java:372)
at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.BTree.deleteImp(BTree.java:376)
at org.clipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.BTree.deleteImp(BTree.java:376)
at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.BTree.deleteImp(BTree.java:376)
at org.eclipse.rephraserengine.internal.db.org.eclipse.cdt.internal.core.pdom.db.BTree.delete(BTree.java:238)
at  rg.eclipse.rephraserengine.internal.core.vpg.db.cdt.InternalCDTDB $Edges deleteAllOutgoingEdgesFrom(InternalCDTDB.java:867)
at org.eclipse.rephraserengine.core.vpg.db.cdt.CDTDB.deleteAllEdgesAndAnnotationsFor(CDTDB.java:275)
at org.eclipse.rephraserengine.core.vpg.db.caching.CachingDB.deleteAllEdgesAndAnnotationsFor(CachingDB.java:178)
at org.eclipse.photran.internal.core.vpg.PhotranVPGDB1.deleteAllEdgesAndAnnotationsFor(PhotranVPGDB1.java:96)
at org.eclipse.rephraserengine.core.vpg.db.profiling.ProfilingDB.deleteAllEdgesAndAnnotationsFor(ProfilingDB.java:216)
at org.eclipse.rephraserengine.core.vpg.DemandDB.deleteAllEdgesAndAnnotationsFor(DemandDB.java:225)
at org.eclipse.rephraserengine.core.vpg.VPGWriter.computeEdgesAndAnnotations(VPGWriter.java:64)
at org.eclipse.rephraserengine.core.vpg.ASTRepository.acquireTransientAST(ASTRepository.java:87)
at org.eclipse.rephraserengine.core.vpg.VPG.forceRecomputationOfEdgesAndAnnotations(VPG.java:432)
at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG $VPGResourceDeltaVisitor.index(EclipseVPG.java:447)
at org.eclipse.rephraserengine.core.vpg.eclipse.EclipseVPG $VPGResourceDeltaJob.runInWorkspace(EclipseVPG.java:336)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Resource:  Path:  Location: line -1 


Thanks in advance for you help.

David A. Alexander
Tech-X Corporation





_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

Back to the top