Skip to content

Commit 589ed42

Browse files
Fix nil reference panic due to variable shadowing bug
1 parent dc2f417 commit 589ed42

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

exporter/clickhouseexporter/exporter_logs_json.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ import (
1818
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter/internal/sqltemplates"
1919
)
2020

21+
// anyLogsExporter is an interface that satisfies both the default map logsExporter and the logsJSONExporter
22+
type anyLogsExporter interface {
23+
start(context.Context, component.Host) error
24+
shutdown(context.Context) error
25+
pushLogsData(context.Context, plog.Logs) error
26+
}
27+
2128
type logsJSONExporter struct {
2229
cfg *Config
2330
logger *zap.Logger

exporter/clickhouseexporter/exporter_traces_json.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ import (
1818
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter/internal/sqltemplates"
1919
)
2020

21+
// anyTracesExporter is an interface that satisfies both the default map tracesExporter and the tracesJSONExporter
22+
type anyTracesExporter interface {
23+
start(context.Context, component.Host) error
24+
shutdown(context.Context) error
25+
pushTraceData(ctx context.Context, td ptrace.Traces) error
26+
}
27+
2128
type tracesJSONExporter struct {
2229
cfg *Config
2330
logger *zap.Logger

exporter/clickhouseexporter/factory.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,19 @@ func createLogsExporter(
3737
c := cfg.(*Config)
3838
c.collectorVersion = set.BuildInfo.Version
3939

40-
exp := newLogsExporter(set.Logger, c)
41-
startOpt := exporterhelper.WithStart(exp.start)
40+
var exp anyLogsExporter
4241
if featureGateJSON.IsEnabled() {
43-
exp := newLogsJSONExporter(set.Logger, c)
44-
startOpt = exporterhelper.WithStart(exp.start)
42+
exp = newLogsJSONExporter(set.Logger, c)
43+
} else {
44+
exp = newLogsExporter(set.Logger, c)
4545
}
4646

4747
return exporterhelper.NewLogs(
4848
ctx,
4949
set,
5050
cfg,
5151
exp.pushLogsData,
52-
startOpt,
52+
exporterhelper.WithStart(exp.start),
5353
exporterhelper.WithShutdown(exp.shutdown),
5454
exporterhelper.WithTimeout(c.TimeoutSettings),
5555
exporterhelper.WithQueue(c.QueueSettings),
@@ -65,19 +65,19 @@ func createTracesExporter(
6565
c := cfg.(*Config)
6666
c.collectorVersion = set.BuildInfo.Version
6767

68-
exp := newTracesExporter(set.Logger, c)
69-
startOpt := exporterhelper.WithStart(exp.start)
68+
var exp anyTracesExporter
7069
if featureGateJSON.IsEnabled() {
71-
exp := newTracesJSONExporter(set.Logger, c)
72-
startOpt = exporterhelper.WithStart(exp.start)
70+
exp = newTracesJSONExporter(set.Logger, c)
71+
} else {
72+
exp = newTracesExporter(set.Logger, c)
7373
}
7474

7575
return exporterhelper.NewTraces(
7676
ctx,
7777
set,
7878
cfg,
7979
exp.pushTraceData,
80-
startOpt,
80+
exporterhelper.WithStart(exp.start),
8181
exporterhelper.WithShutdown(exp.shutdown),
8282
exporterhelper.WithTimeout(c.TimeoutSettings),
8383
exporterhelper.WithQueue(c.QueueSettings),

0 commit comments

Comments
 (0)