[ 
https://issues.apache.org/jira/browse/CHAIN-35?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Niall Pemberton resolved CHAIN-35.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.2
         Assignee: Niall Pemberton

Fixed by the solution to CHAIN-4 - PathInfoMapper (and RequestParamterMapper / 
ServletInfoMapper) now inherit from LookupCommand - which provides the ability 
to specify a "catalogName" attribute:

   http://svn.apache.org/viewvc?view=rev&revision=532951

Also added an example webapp for the three mapper commands (CHAIN-36):

  http://svn.apache.org/viewvc/jakarta/commons/proper/chain/trunk/apps/example/

> PathInfoMapper command can not obtain the current catalog instance
> ------------------------------------------------------------------
>
>                 Key: CHAIN-35
>                 URL: https://issues.apache.org/jira/browse/CHAIN-35
>             Project: Commons Chain
>          Issue Type: Bug
>    Affects Versions: 1.1
>         Environment: Simple web application using the 
> org.apache.commons.chain.web.servlet.ChainProcessor servlet with the 
> PathInfoMapper. No configuration parameters differ from defaults.
>            Reporter: Alonso Dominguez
>         Assigned To: Niall Pemberton
>            Priority: Minor
>             Fix For: 1.2
>
>
> I found a NPE in your implementation of the PathInfoMapper command.
> The exception is thrown when the PathInfoMapper tries to invoke the command 
> he received from the request's pathInfo. This happens at following code:
> // Map to the Command specified by the extra path info
> Catalog catalog = (Catalog) context.get(getCatalogKey());
> Command command = catalog.getCommand(pathInfo);
> As you can see, the command tries to obtain the catalog using the "get" 
> method from the context. The 'catalogKey' is defined to be the same as the 
> one used by the ChainProcessor servlet:
> private String catalogKey = ChainProcessor.CATALOG_DEFAULT;
> The problem is that the catalog instance is set in the request scope, not 
> inside the context instance. This is the piece of code from ChainProcessor 
> that does that:
> if (attribute == null) {
>      request.setAttribute(CATALOG_DEFAULT, theCatalog);
> }
> So, the PathInfoMapper always obtains a null reference from the command's 
> context when it tries to obtain a catalog instance. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to