Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 332943 - IllegalArgumentException from org.eclipse.wst.jsdt.core.dom.ASTNode.setSourceRange at comparing js files
Summary: IllegalArgumentException from org.eclipse.wst.jsdt.core.dom.ASTNode.setSource...
Status: RESOLVED WORKSFORME
Alias: None
Product: JSDT
Classification: WebTools
Component: General (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Nitin Dahyabhai CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-20 08:48 EST by ferengra CLA
Modified: 2011-01-12 07:51 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ferengra CLA 2010-12-20 08:48:57 EST
Build Identifier: I20090611-1540

!ENTRY org.eclipse.wst.jsdt.ui 4 0 2010-12-20 14:42:48.281
!MESSAGE Error in JSDT Core during AST creation
!STACK 0
java.lang.IllegalArgumentException
	at org.eclipse.wst.jsdt.core.dom.ASTNode.setSourceRange(ASTNode.java:2540)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1093)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1588)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:794)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1513)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convertToVariableDeclarationFragment(ASTConverter.java:2913)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convertToVariableDeclarationStatement(ASTConverter.java:2938)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.checkAndAddMultipleLocalDeclaration(ASTConverter.java:321)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1232)
	at org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.convert(JavaScriptUnitResolver.java:262)
	at org.eclipse.wst.jsdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:887)
	at org.eclipse.wst.jsdt.core.dom.ASTParser.createAST(ASTParser.java:647)
	at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider$1.run(ASTProvider.java:581)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:574)
	at org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:509)
	at org.eclipse.wst.jsdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:150)
	at org.eclipse.wst.jsdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:135)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.ui 4 0 2010-12-20 14:42:50.946
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.IllegalArgumentException)
	at org.eclipse.swt.SWT.error(SWT.java:3884)
	at org.eclipse.swt.SWT.error(SWT.java:3799)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	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:368)
	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:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Caused by: java.lang.IllegalArgumentException
	at org.eclipse.wst.jsdt.core.dom.ASTNode.setSourceRange(ASTNode.java:2540)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:796)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1513)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convertToVariableDeclarationFragment(ASTConverter.java:2913)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convertToVariableDeclarationStatement(ASTConverter.java:2938)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.checkAndAddMultipleLocalDeclaration(ASTConverter.java:321)
	at org.eclipse.wst.jsdt.core.dom.ASTConverter.convert(ASTConverter.java:1232)
	at org.eclipse.wst.jsdt.core.dom.JavaScriptUnitResolver.convert(JavaScriptUnitResolver.java:262)
	at org.eclipse.wst.jsdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:887)
	at org.eclipse.wst.jsdt.core.dom.ASTParser.createAST(ASTParser.java:647)
	at org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureCreator.createStructureComparator(JavaStructureCreator.java:284)
	at org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureCreator.createStructureComparator(JavaStructureCreator.java:243)
	at org.eclipse.compare.structuremergeviewer.StructureCreator.internalCreateStructure(StructureCreator.java:116)
	at org.eclipse.compare.structuremergeviewer.StructureCreator.access$0(StructureCreator.java:104)
	at org.eclipse.compare.structuremergeviewer.StructureCreator$1.run(StructureCreator.java:91)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.compare.internal.Utilities.runInUIThread(Utilities.java:775)
	at org.eclipse.compare.structuremergeviewer.StructureCreator.createStructure(StructureCreator.java:97)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.createStructure(StructureDiffViewer.java:155)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.refresh(StructureDiffViewer.java:133)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.setInput(StructureDiffViewer.java:104)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:347)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$2.run(StructureDiffViewer.java:74)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$6.run(StructureDiffViewer.java:322)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:319)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:307)
	at org.eclipse.wst.jsdt.internal.ui.compare.JavaStructureDiffViewer.compareInputChanged(JavaStructureDiffViewer.java:143)
	at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.inputChanged(StructureDiffViewer.java:278)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1634)
	at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:270)
	at org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.setInput(CompareStructureViewerSwitchingPane.java:132)
	at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:718)
	at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:545)
	at org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:449)
	at org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:416)
	at org.eclipse.compare.internal.CompareEditor$3.run(CompareEditor.java:372)
	at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:155)
	at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 22 more


Reproducible: Always

Steps to Reproduce:
1. Open Team Syncrinizing perspective
2. SVN synchronize
3. Double clicking on a js file (portfolio-tab.js) with a change.
Original js:
var pftPortfolioTypeStore = new Ext.data.JsonStore({
    root: 'portfolioTypes',
    fields : [ 
    {name : 'id'},
    {name : 'name'},
    {name : 'attributes'}
	],
    proxy: new Ext.data.HttpProxy({
        url: '<c:url value="/portfolioType/portfolioTypes.jdo"/>',
        method: 'GET'
    }),
    sortInfo: {field: 'name', direction: 'ASC'}
});

Modified js:
var pftPortfolioTypeStore = new Ext.data.JsonStore({
    root: 'portfolioTypes',
    fields : [ 
    {name : 'id'},
    {name : 'name'},
    {name : 'attributes'}
	],
    proxy: new Ext.data.HttpProxy({
        url: '<c:url value="/portfolioType/portfolioTypes.jdo"/>',
        method: 'GET'
    }),
    sortInfo: {field: 'name', direction: 'ASC'},
    listeners: {
    	load : function(store, records, options) {
			<security:authorize ifAnyGranted="MODIFY_PORTFOLIO_ATTRIBUTE_VALUES_BEFORE">
			</security:authorize>
    	}
    }
});

4. Empty window is shown.
Comment 1 Tomasz Zarna CLA 2010-12-20 13:02:16 EST
Moving to WTP/JSDT to comment first.
Comment 2 Chris Jaun CLA 2011-01-05 17:13:44 EST
This issue has already been fixed in 3.2.3 and HEAD.

I was able to see a compare screen with the file contents in the bug description.
Comment 3 ferengra CLA 2011-01-12 07:51:19 EST
I confirm that the issue is fixed in Eclipse Helios (3.6.1) with WTP 3.2.2.
Js files with Spring security taglib (<security:authorize ifAnyGranted="">) can be compared.