当 Part 被激活时,Context 为空。什么会导致这个?
Context is null when Part is being activated. What can cause this?
我的 eclipse 3.x RCP 应用程序有 2 个视角。当应用程序启动并且透视图 A 处于活动状态时,所有部分都将正确创建和显示。当应用启动并且 Perspective B 处于活动状态时,大多数部分都是空的并且 createControl
永远不会被调用。如果我重置透视图,那么所有部分都会正确创建。
到目前为止,我发现 PartActivationHistory.activate
中的 part
有一个空上下文,这会导致 NullPointerException
。为什么会这样?谁在何时设置上下文?
void activate(MPart part, boolean activateBranch) {
IEclipseContext context = part.getContext();
if (activateBranch) {
context.activateBranch();
} else {
IEclipseContext parent = context.getParent();
do {
context.activate();
context = parent;
parent = parent.getParent();
} while (parent.get(MWindow.class) != null);
}
prepend(part);
}
问题是在 Workbench 完全初始化之前执行某些操作引起的。这在过去似乎不是问题,但我最近将平台从 Kepler 更新到 2020/6。
我的 eclipse 3.x RCP 应用程序有 2 个视角。当应用程序启动并且透视图 A 处于活动状态时,所有部分都将正确创建和显示。当应用启动并且 Perspective B 处于活动状态时,大多数部分都是空的并且 createControl
永远不会被调用。如果我重置透视图,那么所有部分都会正确创建。
到目前为止,我发现 PartActivationHistory.activate
中的 part
有一个空上下文,这会导致 NullPointerException
。为什么会这样?谁在何时设置上下文?
void activate(MPart part, boolean activateBranch) {
IEclipseContext context = part.getContext();
if (activateBranch) {
context.activateBranch();
} else {
IEclipseContext parent = context.getParent();
do {
context.activate();
context = parent;
parent = parent.getParent();
} while (parent.get(MWindow.class) != null);
}
prepend(part);
}
问题是在 Workbench 完全初始化之前执行某些操作引起的。这在过去似乎不是问题,但我最近将平台从 Kepler 更新到 2020/6。