Logpoints can't be evaluated
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java, typescript, vscode
- Lĩnh vực
- devtools
Hướng nghiên cứu
Bắt đầu bằng cách lần theo JdtEvaluationProvider.evaluateForBreakpoint và đường đi của SetBreakpointsRequestHandler được hiển thị trong stack trace. Tái hiện logpoint trên sun.awt.X11.XDragSourcePeer và điều tra lý do quá trình đánh giá báo rằng không thể phân giải sun.awt.X11.XMotionEvent. Được xem là hoàn tất khi cùng logpoint đó tạo ra thông báo của nó mà không có lỗi biên dịch.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
When adding logpoints to sun.awt.X11.XDragSourcePeer, I often get errors.
Environment
- Operating System: Ubuntu 22.04.4 LTS
- JDK version: OpenJDK Runtime Environment Temurin-17.0.11+9 (build 17.0.11+9)
- Visual Studio Code version: 1.91.1
- Java extension version: v1.32.0
- Java Debugger extension version: v0.58.0
Steps To Reproduce
- Use attached source file
- Extract jdk src.zip and add to classpath (I forget how I did this)
- Open "Java Projects" > java.desktop > sun.awt.X11 > XDragSourceContextPeer, add "Hello world" logpoint to line 483 (which is
doUpdateTargetWindow(subwindow, time);. - Get error
[Logpoint] Log message 'Hello world' error: Cannot evaluate because of compilation error(s): Evaluations must contain either an expression or block of well-formed statements - Observe
> [Warn - 3:19:18 PM] Jul 23, 2024, 3:19:18 PM Compile error during code evaluation: sun.awt.X11.XMotionEvent cannot be resolved to a typein the Language Support for Java log.
Sample program:
import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.awt.event.*;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DragAndDropExample extends JFrame {
public DragAndDropExample() {
setTitle("Drag and Drop Example");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JTextArea sourceTextArea = new JTextArea("Drag this text");
sourceTextArea.setDragEnabled(true);
sourceTextArea.setLineWrap(true);
sourceTextArea.setWrapStyleWord(true);
JScrollPane sourceScrollPane = new JScrollPane(sourceTextArea);
JTextArea targetTextArea = new JTextArea("Drop here");
targetTextArea.setLineWrap(true);
targetTextArea.setWrapStyleWord(true);
JScrollPane targetScrollPane = new JScrollPane(targetTextArea);
new DropTarget(targetTextArea, new DropTargetListener() {
@Override
public void dragEnter(DropTargetDragEvent dtde) {
if (dtde.isDataFlavorSupported(DataFlavor.stringFlavor)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY);
System.out.println("Drag Enter: Data flavor supported");
} else {
dtde.rejectDrag();
System.out.println("Drag Enter: Data flavor not supported");
}
}
@Override
public void dragOver(DropTargetDragEvent dtde) {
// No action needed here
}
@Override
public void dropActionChanged(DropTargetDragEvent dtde) {
// No action needed here
}
@Override
public void dragExit(DropTargetEvent dte) {
System.out.println("Drag Exit");
}
@Override
public void drop(DropTargetDropEvent dtde) {
try {
if (dtde.isDataFlavorSupported(DataFlavor.stringFlavor)) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
String droppedText = (String) dtde.getTransferable().getTransferData(DataFlavor.stringFlavor);
targetTextArea.append(droppedText);
dtde.dropComplete(true);
System.out.println("Drop: Success");
} else {
dtde.rejectDrop();
System.out.println("Drop: Data flavor not supported");
}
} catch (Exception ex) {
ex.printStackTrace();
dtde.dropComplete(false);
System.out.println("Drop: Exception occurred");
}
}
});
setLayout(new GridLayout(2, 1));
add(sourceScrollPane);
add(targetScrollPane);
}
public static void main(String[] args) {
Logger platformLogger = Logger.getLogger("sun.awt.X11.xembed.xdnd.XDnDDropSourceProtocol");
platformLogger.setLevel(Level.ALL);
ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setLevel(Level.ALL);
platformLogger.addHandler(consoleHandler);
SwingUtilities.invokeLater(() -> {
new DragAndDropExample().setVisible(true);
});
}
}
Language support for Java logs:
Jul 23, 2024 3:18:58 PM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider ch.qos.logback.classic.servlet.LogbackServletContainerInitializer of service jakarta.servlet.ServletContainerInitializer in bundle ch.qos.logback.classic
Jul 23, 2024 3:18:58 PM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic
Jul 23, 2024 3:19:01 PM com.microsoft.java.debug.plugin.internal.JavaDebuggerServerPlugin start
INFO: Starting com.microsoft.java.debug.plugin
Jul 23, 2024 3:19:13 PM com.microsoft.java.debug.core.UsageDataSession recordInfo
INFO: launch debug info
Jul 23, 2024 3:19:14 PM com.microsoft.java.debug.core.UsageDataSession recordResponse
WARNING: abnormal response
[Warn - 3:19:18 PM] Jul 23, 2024, 3:19:18 PM Compile error during code evaluation: sun.awt.X11.XMotionEvent cannot be resolved to a type
[Error - 3:19:18 PM] Jul 23, 2024, 3:19:18 PM [Logpoint]: Cannot evaluate because of compilation error(s): Evaluations must contain either an expression or a block of well-formed statements.
Cannot evaluate because of compilation error(s): Evaluations must contain either an expression or a block of well-formed statements.
com.microsoft.java.debug.core.DebugException: Cannot evaluate because of compilation error(s): Evaluations must contain either an expression or a block of well-formed statements.
at com.microsoft.java.debug.core.adapter.AdapterUtils.createUserErrorDebugException(AdapterUtils.java:274)
at com.microsoft.java.debug.plugin.internal.eval.JdtEvaluationProvider.evaluate(JdtEvaluationProvider.java:176)
at com.microsoft.java.debug.plugin.internal.eval.JdtEvaluationProvider.evaluateForBreakpoint(JdtEvaluationProvider.java:108)
at com.microsoft.java.debug.core.adapter.handler.SetBreakpointsRequestHandler.lambda$registerBreakpointHandler$7(SetBreakpointsRequestHandler.java:206)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Jul 23, 2024 3:19:18 PM com.microsoft.java.debug.core.adapter.handler.SetBreakpointsRequestHandler handleEvaluationResult
SEVERE: [Logpoint]: Cannot evaluate because of compilation error(s): Evaluations must contain either an expression or a block of well-formed statements.
com.microsoft.java.debug.core.DebugException: Cannot evaluate because of compilation error(s): Evaluations must contain either an expression or a block of well-formed statements.
at com.microsoft.java.debug.core.adapter.AdapterUtils.createUserErrorDebugException(AdapterUtils.java:274)
at com.microsoft.java.debug.plugin.internal.eval.JdtEvaluationProvider.evaluate(JdtEvaluationProvider.java:176)
at com.microsoft.java.debug.plugin.internal.eval.JdtEvaluationProvider.evaluateForBreakpoint(JdtEvaluationProvider.java:108)
at com.microsoft.java.debug.core.adapter.handler.SetBreakpointsRequestHandler.lambda$registerBreakpointHandler$7(SetBreakpointsRequestHandler.java:206)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Current Result
Error message is shown instead of log messages.
Expected Result
Log messages are logged.
Additional Informations
This seems to be the relevant error:
[Warn - 3:19:18 PM] Jul 23, 2024, 3:19:18 PM Compile error during code evaluation: sun.awt.X11.XMotionEvent cannot be resolved to a type
- Ngôn ngữ chính
- TypeScript
- Star
- 591
- Fork
- 429
- Merge trung bình
- 1 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 19
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/vscode-java-debug
-
ai-triaged enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
microsoft/vscode-java-debug#1689 · 2 bình luận ·
-
ai-triaged bug
microsoft/vscode-java-debug#1666 · 1 bình luận · 1 người được giao ·
-
ai-triaged bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
microsoft/vscode-java-debug#1658 · 1 bình luận ·
-
ai-triaged enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
microsoft/vscode-java-debug#1628 · 3 bình luận ·
-
Feature support. Đang mởai-triaged enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
microsoft/vscode-java-debug#1616 · 1 bình luận ·
Tất cả issue của microsoft/vscode-java-debug
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
fil-donadoni/tolaria#4409 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
corsairdev/corsair#1764 ·