codeant-ai-for-open-source[bot] commented on code in PR #42126:
URL: https://github.com/apache/superset/pull/42126#discussion_r3618514390
##########
superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.tsx:
##########
@@ -69,13 +68,8 @@ export const getLayer: GetLayerType<ContourLayer> = function
({
emitCrossFilters,
}) {
const fd = formData;
- const {
- aggregation = 'SUM',
- js_data_mutator: jsFnMutator,
- contours: rawContours,
- cellSize = '200',
- } = fd;
- let data = payload.data.features;
+ const { aggregation = 'SUM', contours: rawContours, cellSize = '200' } = fd;
Review Comment:
**Suggestion:** `contours` is destructured into `rawContours` without a
default value, so charts with missing/legacy form data can pass `undefined` and
later array operations on this value will throw at runtime. Default it to an
empty array when destructuring to keep rendering safe. [null pointer]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ Contour layer crashes for charts missing contours configuration.
- ⚠️ Legacy Contour charts may fail after upgrading.
- ⚠️ Users see generic chart render error instead of visualization.
```
</details>
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Create or load a deck.gl Contour chart in Superset so that its frontend
layer uses
`getLayer` from
`superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.tsx:61`
via
`createDeckGLComponent` imported at line 24.
2. Use a chart whose saved `formData` (passed as `fd` into `getLayer`) does
not define the
`contours` key, for example a legacy chart created before the `contours`
control existed
or a programmatically saved chart omitting that field.
3. When the chart renders, `getLayer` executes line 71: `const { aggregation
= 'SUM',
contours: rawContours, cellSize = '200' } = fd;`. Because `fd.contours` is
missing,
`rawContours` is `undefined`.
4. Later in `getLayer` in the same file (around the contour configuration
logic that
includes the arrow function starting at line 97), `rawContours` is iterated
with array
helpers (for example `rawContours.map(...)` to build the deck.gl contour
config). With
`rawContours` being `undefined`, the browser throws a `TypeError: Cannot
read properties
of undefined (reading 'map')`, and the Contour chart fails to render,
showing the generic
chart error UI.
```
</details>
[](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=1826e3ab5f58432582cd4e169139f986&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
[](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=1826e3ab5f58432582cd4e169139f986&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
*(Use Cmd/Ctrl + Click for best experience)*
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:**
superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.tsx
**Line:** 71:71
**Comment:**
*Null Pointer: `contours` is destructured into `rawContours` without a
default value, so charts with missing/legacy form data can pass `undefined` and
later array operations on this value will throw at runtime. Default it to an
empty array when destructuring to keep rendering safe.
Validate the correctness of the flagged issue. If correct, How can I resolve
this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask
user if the user wants to fix the rest of the comments as well. if said yes,
then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a
href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F42126&comment_hash=e8e56df55e56b184eb24e86a246925cfb0ba177e7c5e025b9eae89747e4282a9&reaction=like'>👍</a>
| <a
href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F42126&comment_hash=e8e56df55e56b184eb24e86a246925cfb0ba177e7c5e025b9eae89747e4282a9&reaction=dislike'>👎</a>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]