Skip to content

Commit 3688c2e

Browse files
authored
[gazelle]: Handle the case where no java sources are found (#406)
1 parent df44bd9 commit 3688c2e

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

java/gazelle/BUILD.bazel

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,21 @@ go_library(
4242
],
4343
)
4444

45+
go_test(
46+
name = "lang_test",
47+
size = "small",
48+
srcs = ["lang_test.go"],
49+
embed = [":gazelle"],
50+
)
51+
4552
go_test(
4653
name = "gazelle_test",
4754
size = "medium",
4855
timeout = "short",
4956
srcs = [
5057
"configure_test.go",
5158
"generate_test.go",
59+
"lang_test.go",
5260
"resolve_test.go",
5361
],
5462
embed = [":gazelle"],

java/gazelle/lang.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,9 @@ func (l javaLang) Fix(c *config.Config, f *rule.File) {
264264
}
265265

266266
func (l javaLang) DoneGeneratingRules() {
267-
l.parser.ServerManager().Shutdown()
267+
if l.parser != nil {
268+
l.parser.ServerManager().Shutdown()
269+
}
268270
l.javaExportIndex.FinalizeIndex()
269271
}
270272

java/gazelle/lang_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package gazelle
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestDoneGeneratingRules_NilParser(t *testing.T) {
8+
lang := NewLanguage().(*javaLang)
9+
10+
// Simulate the case where no Java files were found (parser was never initialized)
11+
lang.parser = nil
12+
13+
// This should not panic
14+
lang.DoneGeneratingRules()
15+
}

0 commit comments

Comments
 (0)