You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jspwiki.apache.org by "Juan Pablo Santos Rodríguez (JIRA)" <ji...@apache.org> on 2014/04/20 23:26:18 UTC

[jira] [Commented] (JSPWIKI-822) NPE thrown by PluginContext#getText()

    [ https://issues.apache.org/jira/browse/JSPWIKI-822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13975288#comment-13975288 ] 

Juan Pablo Santos Rodríguez commented on JSPWIKI-822:
-----------------------------------------------------

Hi Ichiro,

WikiDocument stores references to WikiContext inside a {{WeakReference< WikiContext >}}, so it'll return null on getContext() if the associated WikiContext has been garbage collected; it doesn't seem to be an issue on WikiForms, but a bug on PluginContent, not handling a possible null there. What were you doing with the WikiForm to trigger this error, could a unit test reproduce it?

As for the NPE itself, a couple of lines before {{WikiContext context = doc.getContext();}}, when the WikiDocument happens to be null, we simply return getPluginName(), so I'm more inclined to do the same when the context is null rather than printing out an error message..

thoughts?

> NPE thrown by PluginContext#getText()
> -------------------------------------
>
>                 Key: JSPWIKI-822
>                 URL: https://issues.apache.org/jira/browse/JSPWIKI-822
>             Project: JSPWiki
>          Issue Type: Bug
>          Components: Plugins
>    Affects Versions: 2.10
>         Environment: Ubuntu Linux 12.10, JDK 7 (but bug is independent of environment)
>            Reporter: Ichiro Furusato
>            Priority: Minor
>             Fix For: 2.10.1
>
>   Original Estimate: 0.25h
>  Remaining Estimate: 0.25h
>
> In previous versions of JSPWiki there was a null check in PluginContent#getText() to make sure that 
>   WikiContext context = doc.getContext(); 
> actually returns a WikiContext. In certain cases (e.g., WikiForms) the context can get lost, so that the subsequent call on line 150
>   Boolean wysiwygVariable = (Boolean) context.getVariable(RenderingManager.WYSIWYG_EDITOR_MODE);
> throws an NPE. I would recommend reinstating the earlier check from JSPWiki 2.9.x:
>    if( context == null )
>             return "No WikiContext available: INTERNAL ERROR";
> or perhaps an improvement. As is, the NPE results (from the user's perspective) in empty wiki page.



--
This message was sent by Atlassian JIRA
(v6.2#6252)