getDynamic

小さなプラグインを作っているのですが、よく分からない事象が起きています。HudsonというよりはStaplerだとは思うのですが。

public class UtdocAction implements Action {

    (snip)

    public String getUrlName() {
        return "utdoc";
    }

    public void getDynamic(final String id, final StaplerRequest req, final StaplerResponse rsp) throws IOException, ServletException {
        
        final File utdocDir = UtdocPublisher.getUtdocDir(project);
        final File documentDir = new File(utdocDir, id);
        
        final FilePath filePath = new FilePath(documentDir);

        new DirectoryBrowserSupport(this, filePath, project.getDisplayName() + " utdoc", "help.gif", false).generateResponse(req, rsp, this);
    }
}

上記のようなActionで、/utdoc/XXXXX/ にアクセスするとgetDynamicが呼ばれて、そのidに対応するドキュメントが表示されるはず(つもり)なのですが、表示されるときもあれば次のようなエラーが表示されることもあります。

Stapler processed this HTTP request as follows, but couldn't find the resource to consume the request

-> evaluate(<hudson.model.Hudson@1d6e77> :hudson.model.Hudson,"/job/wicket/utdoc/755227773")
-> evaluate(((StaplerProxy)<hudson.model.Hudson@1d6e77>).getTarget(),"/job/wicket/utdoc/755227773")
-> evaluate(<hudson.model.Hudson@1d6e77>.getJob("wicket"),"/utdoc/755227773")
-> evaluate(<hudson.model.FreeStyleProject@a17e94[wicket]> :hudson.model.FreeStyleProject,"/utdoc/755227773")
-> evaluate(<hudson.model.FreeStyleProject@a17e94[wicket]>.getDynamic("utdoc",...),"/755227773")
-> evaluate(<hudson.plugins.utdoc.UtdocAction@1b3236f> :hudson.plugins.utdoc.UtdocAction,"/755227773")
-> evaluate(<hudson.plugins.utdoc.UtdocAction@1b3236f>.getDynamic("755227773",...),"")
            hudson.plugins.utdoc.UtdocAction@1b3236f.getDynamic("755227773",...)==null. Back tracking.
-> No matching rule was found on <hudson.plugins.utdoc.UtdocAction@1b3236f> for "/755227773"

StaplerのURLのマッピングが不安定?のように見えます。

もう少し調べたいのですが、ここしばらく仕事が停滞しているのでいつリリースできるのか全く分かりません。