{"record":{"id":"79d533beea3a7a96","repo":"apache/shardingsphere","slug":"10","errorCode":"10","errorMessage":"Can not find plugin class '%s'.","messagePattern":"Can not find plugin class '(.+?)'\\.","errorType":"exception","errorClass":"PluginNotFoundException","httpStatus":null,"severity":"error","filePath":"infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsExecutor.java","lineNumber":66,"sourceCode":"        return DatabaseSupportedTypedSPI.class.isAssignableFrom(pluginClass)\n                ? Arrays.asList(\"type\", \"type_aliases\", \"supported_database_types\", \"description\")\n                : Arrays.asList(\"type\", \"type_aliases\", \"description\");\n    }\n    \n    private Class<? extends TypedSPI> getPluginClass(final ShowPluginsStatement sqlStatement) {\n        return sqlStatement.getPluginClass().isPresent()\n                ? getPluginClass(sqlStatement.getPluginClass().get())\n                : TypedSPILoader.getService(PluginTypeAndClassMapper.class, sqlStatement.getType()).getPluginClass();\n    }\n    \n    @SuppressWarnings(\"unchecked\")\n    private Class<? extends TypedSPI> getPluginClass(final String pluginClass) {\n        try {\n            Class<?> result = Class.forName(pluginClass);\n            ShardingSpherePreconditions.checkState(TypedSPI.class.isAssignableFrom(result), () -> new UnsupportedOperationException(\"The plugin class to be queried must extend TypedSPI.\"));\n            return (Class<? extends TypedSPI>) result;\n        } catch (final ClassNotFoundException ignored) {\n            throw new PluginNotFoundException(pluginClass);\n        }\n    }\n    \n    @Override\n    public Collection<LocalDataQueryResultRow> getRows(final ShowPluginsStatement sqlStatement, final ContextManager contextManager) {\n        return ShardingSphereServiceLoader.getServiceInstances(getPluginClass(sqlStatement)).stream()\n                .map(each -> new PluginMetaDataQueryResultRow(each).toLocalDataQueryResultRow()).collect(Collectors.toList());\n    }\n    \n    @Override\n    public Class<ShowPluginsStatement> getType() {\n        return ShowPluginsStatement.class;\n    }\n}\n","sourceCodeStart":48,"sourceCodeEnd":81,"githubUrl":"https://github.com/apache/shardingsphere/blob/e952770a215630a3659c75d64369168cd3e26b82/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/ral/plugin/ShowPluginsExecutor.java#L48-L81","documentation":"Error \"Can not find plugin class '%s'.\" thrown in apache/shardingsphere.","triggerScenarios":"SHOW PLUGINS execution cannot locate the requested plugin class on the classpath.","commonSituations":"Querying plugin information for a plugin whose JAR was not deployed to the agent or proxy lib directory.","solutions":["Install the plugin JAR into the plugin directory of the deployment.","Check that the plugin name in SHOW PLUGINS matches an actually deployed plugin class.","Fix typos in the requested plugin class name."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e952770a215630a3659c75d64369168cd3e26b82","analyzedAt":"2026-08-14T13:54:53.392Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}