Grzegorz Kossakowski wrote:
[EMAIL PROTECTED] pisze:
Author: gkossakowski
Date: Sun Jul  1 16:13:44 2007
New Revision: 552371

URL: http://svn.apache.org/viewvc?view=rev&rev=552371
Log:
COCOON-2082: Getting rid of Avalon dependencies, it includes:
* conversion JS, JXPath and JEXL compilers to Spring beans
* conversion DefaultExpressionFactory to Spring bean, it collects language compilers by using bean-map from Spring configurator

As you see, I'm in between of Avalon->Spring conversion process for expression languages. I have not moved and adjusted tests (thus build will fail) because I came across very obscure problem.

First of all I would like you to ask to do svn up and mvn clean install -Dmaven.test.skip=true for trunk, run cocoon-webapp, access http://localhost:8888/blocks/cocoon-template-sample/view/caching2
and check if you get following error:
TypeError: Cannot read property "parameters" from undefined (#1)

AFAICS the problem is that we want to support the syntax

  cocoon.request.parameters.foo

to access request parameters. For some reason this isn't supported anymore after your refactorings though I can't see from your commits where this could be caused. (Well actually I don't have an idea where this feature is implemented at all.)

I would be grateful for any reports to be sure if it's not a JDK issue or so. Also, any help with sorting this out is really appreciated because I'm really out of ideas how to track such a weird problem. Details below.


After conversion (changes in r552371) ExpressionContext creation is slightly broken. Take a look at TemplateObjectModelHelper#getTemplateObjectModel method, the most interesting fragment is line:

cocoon.put("settings", (Settings)WebAppContextUtils.getCurrentWebApplicationContext().getBean(Settings.ROLE));

Cocoon object is normal Java's HashMap, so it seems that there should happen nothing fancy. As you guess, something weird happens, though ;) More specifically, this put breaks completely cocoon object. Inspection in debugger of this object shows that before put operation mentioned above everything looks ok and just after keys of HashMap are getting out of sync of values (table). In a fact, the table of values contains 3 items (and is lacking request object, that explains an exception) and keySet contains 4 items (including request). Moreover, if I change key from "settings" to something else like "test", cocoon object is less broken (table includes request) but if you iterate the cocoon object you will never reach the request object.

From using the debugger I came to the conclustion that the cocoon object is setup correctly (at least for me). I don't see this weird behaviour.

--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}

                                       web(log): http://www.poetz.cc
--------------------------------------------------------------------

Reply via email to