Bug 571402 - Error occurring when selecting variable and pressing Ctrl + Shift i, in debug mode
Summary: Error occurring when selecting variable and pressing Ctrl + Shift i, in debug...
Status: NEW
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 4.18   Edit
Hardware: PC Windows 10
: P3 critical with 3 votes (vote)
Target Milestone: ---   Edit
Assignee: JDT-Debug-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-22 07:21 EST by Samuel Silva CLA
Modified: 2023-04-11 05:27 EDT (History)
6 users (show)

See Also:


Attachments
Error Dialog (8.21 KB, image/png)
2021-02-22 07:21 EST, Samuel Silva CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Samuel Silva CLA 2021-02-22 07:21:23 EST
Created attachment 285625 [details]
Error Dialog

I'm using eclipse version 2020-12 with JDK version 15.
When in Debug mode, when stopping at a Breakpoint, select a variable and press Ctrl + Shift + i to see its contents, the error attached.

Log: 
java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.core.dom.Type.isSimpleType()" because "type" is null
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.getTypeName(SourceBasedSourceGenerator.java:798)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildMethodDeclaration(SourceBasedSourceGenerator.java:493)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildBody(SourceBasedSourceGenerator.java:434)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildTypeBody(SourceBasedSourceGenerator.java:376)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildTypeDeclaration(SourceBasedSourceGenerator.java:660)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.endVisit(SourceBasedSourceGenerator.java:1104)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:532)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3012)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3083)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:261)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3012)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.createEvaluationSourceFromSource(EvaluationSourceGenerator.java:303)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.getSource(EvaluationSourceGenerator.java:383)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.getCompiledExpression(ASTEvaluationEngine.java:386)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.evaluate(ASTEvaluationEngine.java:150)
	at org.eclipse.jdt.internal.debug.ui.actions.EvaluateAction$1.run(EvaluateAction.java:261)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Comment 1 Jonah Graham CLA 2021-02-22 10:25:23 EST
Thanks Samuel for the bug report. I have passed it on to the JDT team to look into further.
Comment 2 Enrico Zanaga CLA 2022-01-04 12:12:19 EST
If it can help, I'm using Eclipse:

Version: 2021-12 (4.22)
Build id: I20211124-1800

I get the following error when I do "Inspect (Ctrl+Shift+I)":

java.lang.NullPointerException: Cannot invoke "String.replace(char, char)" because "typeName" is null
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.getDotName(SourceBasedSourceGenerator.java:310)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildMethodDeclaration(SourceBasedSourceGenerator.java:527)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildBody(SourceBasedSourceGenerator.java:445)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildTypeBody(SourceBasedSourceGenerator.java:387)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.buildTypeDeclaration(SourceBasedSourceGenerator.java:630)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.endVisit(SourceBasedSourceGenerator.java:1157)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:505)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3129)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3200)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:499)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3129)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3200)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:258)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3129)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.createEvaluationSourceFromSource(EvaluationSourceGenerator.java:319)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.getSource(EvaluationSourceGenerator.java:399)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.getCompiledExpression(ASTEvaluationEngine.java:396)
	at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.evaluate(ASTEvaluationEngine.java:154)
	at org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate$EvaluationRunnable.run(JavaWatchExpressionDelegate.java:153)
	at org.eclipse.jdt.internal.debug.core.model.JDIThread$ThreadJob.run(JDIThread.java:3436)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Comment 3 Sarika Sinha CLA 2022-01-04 12:37:30 EST
(In reply to Enrico Zanaga from comment #2)
> If it can help, I'm using Eclipse:
> 
> Version: 2021-12 (4.22)
> Build id: I20211124-1800
> 
> I get the following error when I do "Inspect (Ctrl+Shift+I)":
> 
> java.lang.NullPointerException: Cannot invoke "String.replace(char, char)"
> because "typeName" is null
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> getDotName(SourceBasedSourceGenerator.java:310)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildMethodDeclaration(SourceBasedSourceGenerator.java:527)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildBody(SourceBasedSourceGenerator.java:445)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildTypeBody(SourceBasedSourceGenerator.java:387)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildTypeDeclaration(SourceBasedSourceGenerator.java:630)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> endVisit(SourceBasedSourceGenerator.java:1157)
> 	at
> org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:505)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3129)
> 	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3200)
> 	at
> org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:499)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3129)
> 	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3200)
> 	at
> org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:258)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3129)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.
> createEvaluationSourceFromSource(EvaluationSourceGenerator.java:319)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.
> getSource(EvaluationSourceGenerator.java:399)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.
> getCompiledExpression(ASTEvaluationEngine.java:396)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.
> evaluate(ASTEvaluationEngine.java:154)
> 	at
> org.eclipse.jdt.internal.debug.ui.
> JavaWatchExpressionDelegate$EvaluationRunnable.
> run(JavaWatchExpressionDelegate.java:153)
> 	at
> org.eclipse.jdt.internal.debug.core.model.JDIThread$ThreadJob.run(JDIThread.
> java:3436)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Can you attach a simple Java program and steps to reproduce?
Comment 4 Adam Gent CLA 2022-10-27 15:27:45 EDT
I get the same exact error with conditional breakpoints.

I'm astonished people are not running into this and there is only one vote.
Comment 5 Adam Gent CLA 2022-10-27 15:30:26 EDT
Ditto for breakpoint tracing.
Comment 6 latha patil CLA 2023-04-11 05:27:45 EDT
(In reply to Samuel Silva from comment #0)
> Created attachment 285625 [details]
> Error Dialog
> 
> I'm using eclipse version 2020-12 with JDK version 15.
> When in Debug mode, when stopping at a Breakpoint, select a variable and
> press Ctrl + Shift + i to see its contents, the error attached.
> 
> Log: 
> java.lang.NullPointerException: Cannot invoke
> "org.eclipse.jdt.core.dom.Type.isSimpleType()" because "type" is null
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> getTypeName(SourceBasedSourceGenerator.java:798)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildMethodDeclaration(SourceBasedSourceGenerator.java:493)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildBody(SourceBasedSourceGenerator.java:434)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildTypeBody(SourceBasedSourceGenerator.java:376)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> buildTypeDeclaration(SourceBasedSourceGenerator.java:660)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.SourceBasedSourceGenerator.
> endVisit(SourceBasedSourceGenerator.java:1104)
> 	at
> org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:532)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3012)
> 	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3083)
> 	at
> org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:261)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3012)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.
> createEvaluationSourceFromSource(EvaluationSourceGenerator.java:303)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.EvaluationSourceGenerator.
> getSource(EvaluationSourceGenerator.java:383)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.
> getCompiledExpression(ASTEvaluationEngine.java:386)
> 	at
> org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.
> evaluate(ASTEvaluationEngine.java:150)
> 	at
> org.eclipse.jdt.internal.debug.ui.actions.EvaluateAction$1.
> run(EvaluateAction.java:261)
> 	at
> org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.
> java:122)

Please provide piece of code to reproduce the issue