0

プラグイン プロジェクトから非常に古いコードを編集しています。次のような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もクリアし、プロジェクトをクリーンアップしました。ただし、同じエラーがスローされます。システム全体で同じ名前のコンパイル済みクラス ファイルを検索しましたが、何もないようです。デフォルトの出力フォルダーである/bin以外のフォルダーにあるクラスファイルをEclipseが参照していると思われます。私は何を間違っていますか?

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);
        }
    }
}
4

0 に答える 0