From 8f817ce6897a12f4ff4684defcc956de910a2bf4 Mon Sep 17 00:00:00 2001 From: Yurong He <43652751+YurongHe@users.noreply.github.com> Date: Wed, 5 Dec 2018 10:54:37 -0800 Subject: [PATCH] Fixed Notebooks regression: invalid kernels aren't handled #3404 (#3447) * Fixed the not supported kernel in saved notebook * Resolve PR comment. --- src/sql/parts/notebook/models/sparkMagicContexts.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sql/parts/notebook/models/sparkMagicContexts.ts b/src/sql/parts/notebook/models/sparkMagicContexts.ts index 60b25be9ef..986158fdf2 100644 --- a/src/sql/parts/notebook/models/sparkMagicContexts.ts +++ b/src/sql/parts/notebook/models/sparkMagicContexts.ts @@ -140,9 +140,14 @@ export class SparkMagicContexts { * @param savedKernelInfo kernel info loaded from */ public static getDefaultKernel(specs: nb.IAllKernels, connectionInfo: IConnectionProfile, savedKernelInfo: nb.IKernelInfo, notificationService: INotificationService): nb.IKernelSpec { - let defaultKernel = specs.kernels.find((kernel) => kernel.name === specs.defaultKernel); + let foundSavedKernelInSpecs; + let defaultKernel; + if (specs) { + foundSavedKernelInSpecs = specs.kernels.find((kernel) => kernel.name === savedKernelInfo.name); + defaultKernel = specs.kernels.find((kernel) => kernel.name === specs.defaultKernel); + } let profile = connectionInfo as IConnectionProfile; - if (specs && connectionInfo && profile.providerName === notebookConstants.hadoopKnoxProviderName) { + if (foundSavedKernelInSpecs && specs && connectionInfo && profile.providerName === notebookConstants.hadoopKnoxProviderName) { // set default kernel to default spark kernel if profile exists // otherwise, set default to kernel info loaded from existing file defaultKernel = !savedKernelInfo ? specs.kernels.find((spec) => spec.name === notebookConstants.defaultSparkKernel) : savedKernelInfo;