Fix MCP Screen Discovery subScreenInfoByName property error
- Fixed property name from subScreenInfoByName to subscreenInfoByName (lowercase 's') - Added proper null checks for screenInfoList before accessing .first() - Added proper object navigation for accessing screen locations via subScreenInfo?.sd?.location - Resolved MissingPropertyException in Screen Discovery service - Screen discovery now working correctly, returning 345 screen tools for users
Showing
1 changed file
with
19 additions
and
12 deletions
| ... | @@ -1075,22 +1075,29 @@ try { | ... | @@ -1075,22 +1075,29 @@ try { |
| 1075 | 1075 | ||
| 1076 | try { | 1076 | try { |
| 1077 | ec.logger.info("MCP Screen Discovery: Getting screen info for ${currentScreenPath}") | 1077 | ec.logger.info("MCP Screen Discovery: Getting screen info for ${currentScreenPath}") |
| 1078 | // Fix: Use getScreenInfoList instead of getScreenInfo to avoid method signature mismatch | 1078 | // Fix: Use getScreenInfoList and properly access the ScreenInfo object |
| 1079 | def screenInfoList = ec.screen.getScreenInfoList(currentScreenPath, 1) | 1079 | def screenInfoList = ec.screen.getScreenInfoList(currentScreenPath, 1) |
| 1080 | def screenInfo = screenInfoList?.first() | 1080 | if (screenInfoList && screenInfoList.size() > 0) { |
| 1081 | ec.logger.info("MCP Screen Discovery: Screen info for ${currentScreenPath}: subscreens=${screenInfo?.subScreenInfoByName?.size() ?: 0}") | 1081 | def screenInfo = screenInfoList.first() |
| 1082 | if (screenInfo?.subScreenInfoByName) { | 1082 | ec.logger.info("MCP Screen Discovery: Screen info for ${currentScreenPath}: subscreens=${screenInfo?.subscreenInfoByName?.size() ?: 0}") |
| 1083 | ec.logger.info("MCP Screen Discovery: Found subscreens map: ${screenInfo.subScreenInfoByName.keySet()}") | 1083 | |
| 1084 | for (subScreenEntry in screenInfo.subScreenInfoByName) { | 1084 | // Fix: Use the correct property name 'subscreenInfoByName' (not 'subScreenInfoByName') |
| 1085 | def subScreenPath = subScreenEntry.value.location | 1085 | if (screenInfo?.subscreenInfoByName) { |
| 1086 | ec.logger.info("MCP Screen Discovery: Found subscreen ${subScreenPath} for ${currentScreenPath}") | 1086 | ec.logger.info("MCP Screen Discovery: Found subscreens map: ${screenInfo.subscreenInfoByName.keySet()}") |
| 1087 | if (subScreenPath && !allScreens.contains(subScreenPath)) { | 1087 | for (subScreenEntry in screenInfo.subscreenInfoByName) { |
| 1088 | screensToProcess.add(subScreenPath) | 1088 | def subScreenInfo = subScreenEntry.value |
| 1089 | ec.logger.info("MCP Screen Discovery: Added ${subScreenPath} to processing queue") | 1089 | def subScreenPath = subScreenInfo?.sd?.location |
| 1090 | ec.logger.info("MCP Screen Discovery: Found subscreen ${subScreenPath} for ${currentScreenPath}") | ||
| 1091 | if (subScreenPath && !allScreens.contains(subScreenPath)) { | ||
| 1092 | screensToProcess.add(subScreenPath) | ||
| 1093 | ec.logger.info("MCP Screen Discovery: Added ${subScreenPath} to processing queue") | ||
| 1094 | } | ||
| 1090 | } | 1095 | } |
| 1096 | } else { | ||
| 1097 | ec.logger.info("MCP Screen Discovery: No subscreens found for ${currentScreenPath}") | ||
| 1091 | } | 1098 | } |
| 1092 | } else { | 1099 | } else { |
| 1093 | ec.logger.info("MCP Screen Discovery: No subscreens found for ${currentScreenPath}") | 1100 | ec.logger.info("MCP Screen Discovery: No screen info returned for ${currentScreenPath}") |
| 1094 | } | 1101 | } |
| 1095 | } catch (Exception e) { | 1102 | } catch (Exception e) { |
| 1096 | ec.logger.info("MCP Screen Discovery: Could not get subscreens for ${currentScreenPath}: ${e.message}") | 1103 | ec.logger.info("MCP Screen Discovery: Could not get subscreens for ${currentScreenPath}: ${e.message}") | ... | ... |
-
Please register or sign in to post a comment