Error in eclipse : "AST must not be null"

2,189 views
Skip to first unread message

Alexandre Ardhuin

unread,
Nov 25, 2011, 8:48:13 AM11/25/11
to project...@googlegroups.com
Hi,

After switching eclipse to last version of lombok (0.10.4), I face an eclipse error with the following sample code :

----------------------------------- SOURCE BEGIN -------------------------------------
import lombok.Data;
import lombok.RequiredArgsConstructor;

public class Outer {

    @Data
    @RequiredArgsConstructor(staticName = "of")
    static class Inner1 {
        private final double value;
    }

    @Data
    static class Inner2 {
        private final double value;
    }
}

----------------------------------- SOURCE END -------------------------------------

"Organize Import" produces error "AST must not be null".

Switching back to 0.10.2 resolves the problem. 2 inner classes annotated and a @RequiredArgsConstructor seems to be the cause.

Does anyone face the same problem ?

Thanks in advance,
Alexandre.



================================================
== eclipse error log
================================================
eclipse.buildId=M20110909-1335
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=fr_FR
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product

This is a continuation of log file [....]/workspace/.metadata/.bak_0.log
Created Time: 2011-11-25 14:10:24.734

Error
Fri Nov 25 14:31:33 CET 2011
Exception occurred during compilation unit conversion:
----------------------------------- SOURCE BEGIN -------------------------------------
import lombok.Data;
import lombok.RequiredArgsConstructor;

public class Outer {

    @Data
    @RequiredArgsConstructor(staticName = "of")
    static class Inner1 {
        private final double value;
    }

    @Data
    static class Inner2 {
        private final double value;
    }
}

----------------------------------- SOURCE END -------------------------------------

java.lang.IllegalArgumentException
    at org.eclipse.jdt.core.dom.ASTNode.setSourceRange(ASTNode.java:2648)
    at org.eclipse.jdt.core.dom.ASTConverter.convertToVariableDeclarationFragment(ASTConverter.java:3017)
    at org.eclipse.jdt.core.dom.ASTConverter.checkAndAddMultipleLocalDeclaration(ASTConverter.java:393)
    at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:532)
    at org.eclipse.jdt.core.dom.ASTConverter.buildBodyDeclarations(ASTConverter.java:183)
    at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2659)
    at org.eclipse.jdt.core.dom.ASTConverter.buildBodyDeclarations(ASTConverter.java:188)
    at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2659)
    at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:1220)
    at org.eclipse.jdt.core.dom.CompilationUnitResolver.convert(CompilationUnitResolver.java:289)
    at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1207)
    at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:807)
    at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider$1.run(ASTProvider.java:544)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:537)
    at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:480)
    at org.eclipse.jdt.ui.SharedASTProvider.getAST(SharedASTProvider.java:128)
    at org.eclipse.jdt.ui.actions.OrganizeImportsAction.run(OrganizeImportsAction.java:273)
    at org.eclipse.jdt.ui.actions.OrganizeImportsAction.run(OrganizeImportsAction.java:225)
    at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275)
    at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:251)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119)
    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.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468)
    at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786)
    at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885)
    at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567)
    at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508)
    at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1531)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294)
    at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730)
    at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3019)
    at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734)
    at org.eclipse.swt.widgets.Tree.gtk_key_press_event(Tree.java:2002)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
    at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:3530)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
    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:344)
    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:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

tomas.vala

unread,
Dec 12, 2011, 9:48:34 AM12/12/11
to Project Lombok
Hi,

i am experiencing the same issue. In the result none of Eclipse's
source code sense/suggestions are working and Eclipse as a whole feels
rather unresponsive. Time to provisional downgrade I guess.

Lombok 0.10.4
Eclipse 3.7

Cheers,
Tomas

William

unread,
Dec 13, 2011, 4:35:43 AM12/13/11
to Project Lombok
Hi,

same config (Eclipse 3.7, ubuntu 64b, lombok 0.10.4), same issue !
Works great with lombok 0.10.2

Reinier Zwitserloot

unread,
Jan 7, 2012, 7:58:08 AM1/7/12
to project...@googlegroups.com
Thought we fixed this in 0.10.6 but we didn't.

Eugen Shvatsky

unread,
Jul 11, 2014, 4:56:08 AM7/11/14
to project...@googlegroups.com
the same error for

int[][] getData();

val data = getData()

пятница, 25 ноября 2011 г., 15:48:13 UTC+2 пользователь Alex написал:

Reinier Zwitserloot

unread,
Jul 11, 2014, 11:51:11 AM7/11/14
to project-lombok
Just because it has the same exception doesn't mean it's in any way related. I cannot reproduce this issue. I tried this:

public class FOO {
public int[][] a() {
return null;
}
public void b() {
lombok.val x = a();
}
}


no errors occur. Please post some simple self-contained (no dependencies on anything else) code that triggers the problem, as well as the output of javac -version. If you can do that, please open a new issue, don't attach to 325, as I very much doubt it's related.

 --Reinier Zwitserloot


--
You received this message because you are subscribed to the Google Groups "Project Lombok" group.
To unsubscribe from this group and stop receiving emails from it, send an email to project-lombo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Eugen Shvatsky

unread,
Jul 11, 2014, 2:12:54 PM7/11/14
to project...@googlegroups.com
!ENTRY org.eclipse.jdt.ui 4 2 2014-07-10 22:35:28.024
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ui".
!STACK 0
java.lang.IllegalArgumentException: startPos = 5542 and length is -5542.
This breaks the rule that lengths are not allowed to be negative. Affected Node:
int[][]
at lombok.eclipse.agent.PatchDiagnostics.setSourceRangeCheck(PatchDiagnostics.java:33)
at org.eclipse.jdt.core.dom.ASTNode.setSourceRange(ASTNode.java)
at org.eclipse.jdt.core.dom.ASTConverter.setTypeAnnotationsAndSourceRangeOnArray(ASTConverter.java:3420)
at org.eclipse.jdt.core.dom.ASTConverter.convertToArray(ASTConverter.java:3166)
at org.eclipse.jdt.core.dom.ASTConverter.convertType(ASTConverter.java:3628)
at org.eclipse.jdt.core.dom.ASTConverter.convertToVariableDeclarationStatement(ASTConverter.java:3439)
at org.eclipse.jdt.core.dom.ASTConverter.checkAndAddMultipleLocalDeclaration(ASTConverter.java:458)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:633)
at org.eclipse.jdt.core.dom.ASTConverter.buildBodyDeclarations(ASTConverter.java:334)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2511)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:1696)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2167)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:1780)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2751)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:635)
at org.eclipse.jdt.core.dom.ASTConverter.buildBodyDeclarations(ASTConverter.java:334)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2511)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:1696)
at org.eclipse.jdt.core.dom.ASTConverter.convertToVariableDeclarationFragment(ASTConverter.java:3317)
at org.eclipse.jdt.core.dom.ASTConverter.convertToFieldDeclaration(ASTConverter.java:3204)
at org.eclipse.jdt.core.dom.ASTConverter.checkAndAddMultipleFieldDeclaration(ASTConverter.java:438)
at org.eclipse.jdt.core.dom.ASTConverter.buildBodyDeclarations(ASTConverter.java:188)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:2958)
at org.eclipse.jdt.core.dom.ASTConverter.convert(ASTConverter.java:1374)
at org.eclipse.jdt.core.dom.AST.convertCompilationUnit(AST.java:270)
at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:202)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:259)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:557)
at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:1082)
at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:171)
at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:90)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:729)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:789)
at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1247)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151)
at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)
at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104)
at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)

пятница, 25 ноября 2011 г., 15:48:13 UTC+2 пользователь Alex написал:
Hi,
Reply all
Reply to author
Forward
0 new messages