Pentaho CE 10.2浏览项目仓库报错:无法调用RepositoryDirectoryInterface.getName()
问题:Pentaho CE 10.2浏览仓库子目录时触发NullPointerException
环境信息
- Pentaho CE版本:10.2.0.0-222
- JDK版本:17.0.10
- 操作系统:Windows 10 Enterprise 22H2
- 对比验证:Pentaho CE 9.4执行相同操作无异常
报错堆栈
Exception occurred java.lang.NullPointerException: Cannot invoke "org.pentaho.di.repository.RepositoryDirectoryInterface.getName()" because "repositoryDirectoryInterface" is null at org.pentaho.di.plugins.fileopensave.providers.repository.model.RepositoryDirectory.build(RepositoryDirectory.java:43) at org.pentaho.di.plugins.fileopensave.providers.repository.RepositoryFileProvider.getFiles(RepositoryFileProvider.java:107) at org.pentaho.di.plugins.fileopensave.providers.repository.RepositoryFileProvider.getFiles(RepositoryFileProvider.java:69) at org.pentaho.di.plugins.fileopensave.controllers.FileController.getFiles(FileController.java:131) at org.pentaho.di.plugins.fileopensave.dialog.FileOpenSaveDialog$FileTreeContentProvider.lambda$getChildren$0(FileOpenSaveDialog.java:2464) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.pentaho.di.plugins.fileopensave.dialog.FileOpenSaveDialog$FileTreeContentProvider.getChildren(FileOpenSaveDialog.java:2462) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1434) at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:350) at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:852) at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:626) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:828) at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:604) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:779) at org.eclipse.jface.viewers.AbstractTreeViewer.setExpandedState(AbstractTreeViewer.java:2526) at org.pentaho.di.plugins.fileopensave.dialog.FileOpenSaveDialog.lambda$createFilesBrowser$21(FileOpenSaveDialog.java:1273) at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:823) at org.eclipse.jface.util.SafeRunnable$1.run(SafeRunnable.java:129) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174) at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:820) at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1193) at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84) at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:263) at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:258) at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:428) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4029) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.pentaho.di.plugins.fileopensave.dialog.FileOpenSaveDialog.open(FileOpenSaveDialog.java:322) at org.pentaho.di.plugins.fileopensave.extension.FileOpenSaveExtensionPoint.callExtensionPoint(FileOpenSaveExtensionPoint.java:74) at org.pentaho.di.core.extension.ExtensionPointMap.callExtensionPoint(ExtensionPointMap.java:142) at org.pentaho.di.core.extension.ExtensionPointHandler.callExtensionPoint(ExtensionPointHandler.java:36) at org.pentaho.di.ui.spoon.Spoon.openFileNew(Spoon.java:4706) at org.pentaho.di.ui.spoon.Spoon.openFileNew(Spoon.java:4670) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:309) at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:153) at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:137) at org.pentaho.ui.xul.swt.tags.SwtToolbarbutton.access$000(SwtToolbarbutton.java:44) at org.pentaho.ui.xul.swt.tags.SwtToolbarbutton$1.widgetSelected(SwtToolbarbutton.java:92) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4054) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3642) at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1429) at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:8217) at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9586) at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:735) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.pentaho.commons.launcher.Launcher.main(Launcher.java:88)
解决建议
- 重建本地仓库:关闭Spoon,备份
%USERPROFILE%\.pentaho\repositories下对应仓库的文件夹,删除原文件夹后重新创建本地仓库,导入原有作业和转换。 - 切换JDK版本:Pentaho CE 10.2对JDK 17的兼容性可能存在问题,尝试切换到官方推荐的JDK 11 LTS版本测试。
- 替换插件文件:从Pentaho CE 9.4安装目录复制
plugins/fileopensave文件夹,替换10.2版本中的对应目录(替换前备份原文件夹),修复fileopensave插件的空指针问题。 - 清理缓存:删除
%USERPROFILE%\.pentaho\cache和%USERPROFILE%\.pentaho\.metadata目录,重启Spoon后重新连接仓库。
内容的提问来源于stack exchange,提问作者Maxhouston
相关产品推荐
相关产品推荐

