IDE fails to resolve correct class when duplicate classes exist across multiple JARs (shaded vs non-shaded)
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
- 42/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java, typescript, vscode
- Lĩnh vực
- developer-experience, tooling
Hướng nghiên cứu
Bắt đầu với bản tái hiện Gradle được mô tả trong issue, sử dụng các lớp trùng lặp từ các JAR shaded và unshaded. Theo dõi cách VS Code Java extension phân giải lớp so với Gradle CLI, và xác minh việc hoàn thành khi AuthenticationHandler unshaded được chọn mà không có sự không khớp kiểu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
The class org.apache.hadoop.security.authentication.server.AuthenticationHandler is present in both the jars i have:
- hadoop-client-api.jar (shaded version)
- hadoop-auth.jar (non-shaded version)
In the shaded JAR (hadoop-client-api.jar), AuthenticationHandler references HttpServletRequest from a relocated (shaded) servlet package.
In hadoop-auth.jar, the same class references javax.servlet.HttpServletRequest.
This leads to ambiguous class resolution in VS Code.
In our case, the VS Code Java extension mistakenly resolves the shaded AuthenticationHandler from hadoop-client-api.jar instead of the correct one from hadoop-auth.jar, resulting in a type mismatch when extending the class.
Reference screenshot
Environment
Hadoop version: 3.4.0
Java version: 17.0.16
Build tool: Gradle 8.14
IDE: VS Code with Java extension (vscjava.vscode-gradle 3.17.1)
Steps to Reproduce
- Create a Gradle project depending on two JARs that contain the same class name.
- One JAR uses a shaded package (e.g., org.apache.hadoop.shaded.*).
- Reference the class from the unshaded JAR.
- Observe that VS Code reports type mismatch or class conflict, while Gradle CLI builds successfully.
- Ngôn ngữ chính
- TypeScript
- Star
- 2.3k
- Fork
- 547
- Merge trung bình
- 20 giờ 9 phút
- Pull request đã merge (30 ngày)
- 10
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 redhat-developer/vscode-java
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
redhat-developer/vscode-java#4511 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
redhat-developer/vscode-java#4426 ·
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
redhat-developer/vscode-java#4506 · 6 bình luận · 4 reaction ·
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
redhat-developer/vscode-java#4505 · 5 bình luận · 2 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
redhat-developer/vscode-java#4504 · 3 bình luận · 1 reaction ·
Tất cả issue của redhat-developer/vscode-java
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
security
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
IBM/node-sdk-core#373 ·
-
e2e-failure ready-to-code
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
chore
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100