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

Thanks Jeff!

Eclipse is not terminating, but the "clearing the database" trick should help, thanks.   What we were seeing is that all of the subsequent refactorings would produce the same null pointer exception; but clearing the database might fix that problem.

Thanks,

David A. Alexander
Tech-X Corporation



On Jul 26, 2012, at 6:05 AM, Jeffrey Overbey wrote:

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 

<PhotranError.png>

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
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


Back to the top