Stacktrace指向源代码中不存在的行

时间:2013-07-19 00:10:23

标签: java eclipse exception eclipse-plugin stack-trace

我正在编辑插件项目的一段很旧的代码。它抛出一个 ClassCastException ,如下所示:

java.lang.ClassCastException: org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML cannot be cast to puakma.vortex.editors.pma.parser2.PmaStructuredTextViewerConfiguration
at puakma.vortex.editors.pma.PmaStructuredTextViewer.configure(PmaStructuredTextViewer.java:20)
at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:3419)
at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:54)

我已经将 PmaStructuredTextViewer 的内容改组为测试目的,并且一次又一次地抛出相同的错误。我每次都清理并建造了这个项目。我甚至清除了输出文件夹 / bin 并清理了项目。但是,抛出相同的错误。我在整个系统中搜索了同名的任何编译类文件,但似乎没有。我怀疑eclipse是引用文件夹中的类文件,而不是 / bin 这是默认的输出文件夹。我究竟做错了什么?

我已经清除了bin文件夹而没有重建项目,运行它。该项目运行良好。我怎么能确保eclipse在bin文件夹中加载正确的类文件。

public void configure(SourceViewerConfiguration configuration)
{
    ((PmaStructuredTextViewerConfiguration) configuration).setupReconciler(this);

    super.configure(configuration);
}

我甚至将代码自定义为以下内容。不知何故抛出了同样的异常。这让我相信eclipse在运行时没有使用新编译的类文件。相反,它使用旧的类文件。

public class PmaStructuredTextViewer extends StructuredTextViewer
{
    public PmaStructuredTextViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler, boolean showAnnotationsOverview, int styles)
    {
        super(parent, verticalRuler, overviewRuler, showAnnotationsOverview, styles);
    }

    public void configure(SourceViewerConfiguration configuration)
    {
        if(configuration instanceof PmaStructuredTextViewerConfiguration)
        {
            ((PmaStructuredTextViewerConfiguration) configuration).setupReconciler(this);

            super.configure(configuration);
        }
    }
}

0 个答案:

没有答案