Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 320808

Summary: When working with large files fatall error occure with java.lang.NullPointerException
Product: z_Archived Reporter: Radek Hill <diwi>
Component: PDTAssignee: PHP UI <php.ui-inbox>
Status: CLOSED INVALID QA Contact:
Severity: critical    
Priority: P2 CC: ganoro, zhaozhongwei
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows Vista   
Whiteboard:
Attachments:
Description Flags
Problematic file, not just this one
none
after submit error, code is broken
none
When use ctr+z after error happend
none
Error
none
error log none

Description Radek Hill CLA 2010-07-24 09:32:37 EDT
Build Identifier: 20100617-1415

When working with php file bigger then 1000 lines every 10 minutes approximatelly error occure, then file is almost blank, without line numbers, pushing ctrl+z occure another error. Just restart editor helps.
Attached problematic file and screenshot. 
---- Log file
!ENTRY org.eclipse.php.core 4 10001 2010-07-24 14:38:13.867
!MESSAGE PHPCore plugin internal error
!STACK 0
java.lang.NullPointerException
	at org.eclipse.php.internal.core.documentModel.parser.regions.PhpTokenContainer.isInside(PhpTokenContainer.java:104)
	at org.eclipse.php.internal.core.documentModel.parser.regions.PhpTokenContainer.getToken(PhpTokenContainer.java:74)
	at org.eclipse.php.internal.core.documentModel.parser.regions.PhpScriptRegion.getPhpToken(PhpScriptRegion.java:85)
	at org.eclipse.php.internal.core.util.text.PHPTextSequenceUtilities.getStatement(PHPTextSequenceUtilities.java:116)
	at org.eclipse.php.internal.core.codeassist.PHPSelectionEngine.internalResolve(PHPSelectionEngine.java:388)
	at org.eclipse.php.internal.core.codeassist.PHPSelectionEngine.select(PHPSelectionEngine.java:139)
	at org.eclipse.dltk.internal.core.Openable.codeSelect(Openable.java:578)
	at org.eclipse.dltk.internal.core.AbstractSourceModule.codeSelect(AbstractSourceModule.java:85)
	at org.eclipse.dltk.internal.core.AbstractSourceModule.codeSelect(AbstractSourceModule.java:76)
	at org.eclipse.php.internal.ui.editor.highlighters.InternalClassHighlighting.isInternalClass(InternalClassHighlighting.java:60)
	at org.eclipse.php.internal.ui.editor.highlighters.InternalClassHighlighting.access$0(InternalClassHighlighting.java:57)
	at org.eclipse.php.internal.ui.editor.highlighters.InternalClassHighlighting$InternalClassApply.visit(InternalClassHighlighting.java:29)
	at org.eclipse.php.internal.core.ast.nodes.Identifier.accept0(Identifier.java:66)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Variable.childrenAccept(Variable.java:120)
	at org.eclipse.php.internal.core.ast.nodes.Variable.accept0(Variable.java:114)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.FunctionName.childrenAccept(FunctionName.java:74)
	at org.eclipse.php.internal.core.ast.nodes.FunctionName.accept0(FunctionName.java:68)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.FunctionInvocation.childrenAccept(FunctionInvocation.java:86)
	at org.eclipse.php.internal.core.ast.nodes.FunctionInvocation.accept0(FunctionInvocation.java:80)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.MethodInvocation.childrenAccept(MethodInvocation.java:82)
	at org.eclipse.php.internal.core.ast.nodes.MethodInvocation.accept0(MethodInvocation.java:75)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.ExpressionStatement.childrenAccept(ExpressionStatement.java:73)
	at org.eclipse.php.internal.core.ast.nodes.ExpressionStatement.accept0(ExpressionStatement.java:67)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.IfStatement.childrenAccept(IfStatement.java:96)
	at org.eclipse.php.internal.core.ast.nodes.IfStatement.accept0(IfStatement.java:89)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.IfStatement.childrenAccept(IfStatement.java:96)
	at org.eclipse.php.internal.core.ast.nodes.IfStatement.accept0(IfStatement.java:89)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.TryStatement.childrenAccept(TryStatement.java:104)
	at org.eclipse.php.internal.core.ast.nodes.TryStatement.accept0(TryStatement.java:98)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.FunctionDeclaration.childrenAccept(FunctionDeclaration.java:108)
	at org.eclipse.php.internal.core.ast.nodes.FunctionDeclaration.accept0(FunctionDeclaration.java:97)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.MethodDeclaration.childrenAccept(MethodDeclaration.java:90)
	at org.eclipse.php.internal.core.ast.nodes.MethodDeclaration.accept0(MethodDeclaration.java:82)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.ClassDeclaration.childrenAccept(ClassDeclaration.java:118)
	at org.eclipse.php.internal.core.ast.nodes.ClassDeclaration.accept0(ClassDeclaration.java:104)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Program.childrenAccept(Program.java:195)
	at org.eclipse.php.internal.core.ast.nodes.Program.accept0(Program.java:188)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.ui.editor.highlighter.AbstractSemanticHighlighting.consumes(AbstractSemanticHighlighting.java:93)
	at org.eclipse.php.internal.ui.editor.highlighter.AbstractSemanticHighlighting.consumes(AbstractSemanticHighlighting.java:102)
	at org.eclipse.wst.sse.ui.internal.style.SemanticHighlightingReconciler.reconcile(SemanticHighlightingReconciler.java:127)
	at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.endProcessing(DocumentRegionProcessor.java:119)
	at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor.run(DirtyRegionProcessor.java:682)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


Reproducible: Sometimes

Steps to Reproduce:
1. Normal working using copying text ctrl+c, ctrl+v, ctrl+x or just writing or selecting text and pushing del.
2.
3.
Comment 1 Radek Hill CLA 2010-07-24 09:34:52 EDT
Created attachment 175148 [details]
Problematic file, not just this one
Comment 2 Radek Hill CLA 2010-07-24 09:36:50 EDT
Created attachment 175149 [details]
after submit error, code is broken
Comment 3 Radek Hill CLA 2010-07-24 09:37:52 EDT
Created attachment 175150 [details]
When use ctr+z after error happend
Comment 4 Zhongwei Zhao CLA 2010-07-26 03:03:23 EDT
it is a little same as bug 318882,and it seems to have been fixed in head,please reopen it if this bug still exists after using the latest build version,thanks!
Comment 5 Radek Hill CLA 2010-07-29 10:03:30 EDT
Error occured again. Im using last revision as you can see at last screenshot.


!ENTRY org.eclipse.php.core 4 10001 2010-07-29 15:55:15.610
!MESSAGE PHPCore plugin internal error
!STACK 0
java.lang.NullPointerException
	at org.eclipse.php.internal.core.codeassist.PHPSelectionEngine.internalResolve(PHPSelectionEngine.java:386)
	at org.eclipse.php.internal.core.codeassist.PHPSelectionEngine.select(PHPSelectionEngine.java:139)
	at org.eclipse.dltk.internal.core.Openable.codeSelect(Openable.java:578)
	at org.eclipse.dltk.internal.core.AbstractSourceModule.codeSelect(AbstractSourceModule.java:85)
	at org.eclipse.dltk.internal.core.AbstractSourceModule.codeSelect(AbstractSourceModule.java:76)
	at org.eclipse.php.internal.ui.editor.highlighters.InternalClassHighlighting.isInternalClass(InternalClassHighlighting.java:60)
	at org.eclipse.php.internal.ui.editor.highlighters.InternalClassHighlighting.access$0(InternalClassHighlighting.java:57)
	at org.eclipse.php.internal.ui.editor.highlighters.InternalClassHighlighting$InternalClassApply.visit(InternalClassHighlighting.java:29)
	at org.eclipse.php.internal.core.ast.nodes.Identifier.accept0(Identifier.java:66)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Variable.childrenAccept(Variable.java:120)
	at org.eclipse.php.internal.core.ast.nodes.Variable.accept0(Variable.java:114)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.FieldAccess.childrenAccept(FieldAccess.java:79)
	at org.eclipse.php.internal.core.ast.nodes.FieldAccess.accept0(FieldAccess.java:72)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.MethodInvocation.childrenAccept(MethodInvocation.java:81)
	at org.eclipse.php.internal.core.ast.nodes.MethodInvocation.accept0(MethodInvocation.java:75)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.ExpressionStatement.childrenAccept(ExpressionStatement.java:73)
	at org.eclipse.php.internal.core.ast.nodes.ExpressionStatement.accept0(ExpressionStatement.java:67)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.FunctionDeclaration.childrenAccept(FunctionDeclaration.java:108)
	at org.eclipse.php.internal.core.ast.nodes.FunctionDeclaration.accept0(FunctionDeclaration.java:97)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.MethodDeclaration.childrenAccept(MethodDeclaration.java:90)
	at org.eclipse.php.internal.core.ast.nodes.MethodDeclaration.accept0(MethodDeclaration.java:82)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Block.childrenAccept(Block.java:97)
	at org.eclipse.php.internal.core.ast.nodes.Block.accept0(Block.java:90)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.ClassDeclaration.childrenAccept(ClassDeclaration.java:118)
	at org.eclipse.php.internal.core.ast.nodes.ClassDeclaration.accept0(ClassDeclaration.java:104)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.core.ast.nodes.Program.childrenAccept(Program.java:195)
	at org.eclipse.php.internal.core.ast.nodes.Program.accept0(Program.java:188)
	at org.eclipse.php.internal.core.ast.nodes.ASTNode.accept(ASTNode.java:275)
	at org.eclipse.php.internal.ui.editor.highlighter.AbstractSemanticHighlighting.consumes(AbstractSemanticHighlighting.java:93)
	at org.eclipse.php.internal.ui.editor.highlighter.AbstractSemanticHighlighting.consumes(AbstractSemanticHighlighting.java:102)
	at org.eclipse.wst.sse.ui.internal.style.SemanticHighlightingReconciler.reconcile(SemanticHighlightingReconciler.java:127)
	at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.endProcessing(DocumentRegionProcessor.java:119)
	at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor.run(DirtyRegionProcessor.java:682)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.eclipse.ui 4 0 2010-07-29 15:55:33.625
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
	at org.eclipse.jface.window.Window.open(Window.java:801)
	at org.eclipse.ui.internal.about.AboutHandler.execute(AboutHandler.java:32)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
	at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	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)
Caused by: java.lang.NullPointerException
	at org.eclipse.php.internal.core.documentModel.parser.regions.PhpTokenContainer.getTokens(PhpTokenContainer.java:95)
	at org.eclipse.php.internal.core.documentModel.parser.regions.PhpScriptRegion.getPhpTokens(PhpScriptRegion.java:93)
	at org.eclipse.php.internal.ui.editor.highlighter.LineStyleProviderForPhp.preparePhpRegions(LineStyleProviderForPhp.java:644)
	at org.eclipse.php.internal.ui.editor.highlighter.LineStyleProviderForPhp.prepareTextRegions(LineStyleProviderForPhp.java:561)
	at org.eclipse.php.internal.ui.editor.highlighter.LineStyleProviderForPhp.prepareRegions(LineStyleProviderForPhp.java:449)
	at org.eclipse.wst.sse.ui.internal.rules.StructuredDocumentDamagerRepairer.createPresentation(StructuredDocumentDamagerRepairer.java:43)
	at org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler.createPresentation(StructuredPresentationReconciler.java:716)
	at org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler.processDamage(StructuredPresentationReconciler.java:862)
	at org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler$InternalListener.textChanged(StructuredPresentationReconciler.java:420)
	at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2820)
	at org.eclipse.jface.text.TextViewer.invalidateTextPresentation(TextViewer.java:3463)
	at org.eclipse.jface.text.source.AnnotationPainter.invalidateTextPresentation(AnnotationPainter.java:962)
	at org.eclipse.jface.text.source.AnnotationPainter.updatePainting(AnnotationPainter.java:944)
	at org.eclipse.jface.text.source.AnnotationPainter.access$1(AnnotationPainter.java:938)
	at org.eclipse.jface.text.source.AnnotationPainter$1.run(AnnotationPainter.java:1077)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 38 more
Comment 6 Radek Hill CLA 2010-07-29 10:04:41 EDT
Created attachment 175497 [details]
Error
Comment 7 Zhongwei Zhao CLA 2010-07-30 04:01:53 EDT
!ENTRY org.eclipse.php.core 4 10001 2010-07-29 15:55:15.610
!MESSAGE PHPCore plugin internal error
!STACK 0
java.lang.NullPointerException
    at
org.eclipse.php.internal.core.codeassist.PHPSelectionEngine.internalResolve(PHPSelectionEngine.java:386)
    at
org.eclipse.php.internal.core.codeassist.PHPSelectionEngine.select(PHPSelectionEngine.java:139)





This also has been fixed already!
Comment 8 Radek Hill CLA 2010-07-30 07:48:01 EDT
Created attachment 175558 [details]
error log
Comment 9 Radek Hill CLA 2010-07-30 07:50:24 EDT
OK I attached part from log file, becouse I cant found beginning of error so there is 5 seconds duration.
Comment 10 Roy Ganor CLA 2010-08-04 05:58:29 EDT
After consulting with QA, we need to continue the deep performance auditing to complete the fixes for these issues.

Also we need others to help us out with reproduction, obviously there are performance bugs that can't be simulated very easily.
Comment 11 Radek Hill CLA 2010-10-15 13:21:56 EDT
Problem occure just when using old workspace from previous eclipse galileo. When I created projects from beginning and used new clear workspace, problem never happend.