On 12 February 2010 14:54, preeti agarwal <preetiagarwa...@gmail.com> wrote:
> Hi > For our Application we wanted to raise partialTriggers based on > three components. Accidentally till now we were using commas to separate > them and it worked fine. > > <tr:panelGroupLayout id="panelGroup#{count}" > partialTriggers="link#{count},h_anchors#{count},expandAll"> > > We use : > Trinidad 1.2.12 > jsf-facelets 1.1.14 > JBoss 4.2.1 > > > > Now when we tried to run this in other environment (other than JBoss), > it gives error saying > > java.lang.IllegalArgumentException: Cannot convert selectedReaction of > type class java.lang.String to class [Ljava.lang.String; > > > When we searched in Trinidad Doc it recommends to use spaces instead of > commas. Then we found in > http://issues.apache.org/jira/browse/TRINIDAD-1417 that we need to use > EL expressions as even spaces don't work. > > Now some FAQs regarding this: > > 1) Why commas were working in JBoss environment since it's not > supported as per the document? Does any jar allowed it? > > 2) If it was working in JBoss then why it failed in the new > environment? > It seems that JBoss and/or Seam uses it's own EL support classes... these will fall back to the PropertyEditor's if all else fails. It would appear that either in your JBoss server a StringArrayPropertyEditor has been registered, or else JBoss registers such a property editor by default (perhaps for the JMX console) The new environment does not have such a property editor registered. [Preeti: Before you go running back and emailing me to say that somebody on the trinidad list found a solution, check who's sending this mail ;-) ] The hack is to register a StringArrayPropertyEditor in the container. This does not fix the original issue. The original issue is best fixed by using an EL function to convert the string to a string array, as not every container is as ameanable to registering custom PropertyEditor's on start-up as Jetty. BTW. Registering a custom property editor in a Servlet Context Listener is a potential ClassLoader leak as PropertyEditorManager is in the global classloader and would contain a reference to the class from the deployed application. Additionally, as PropertyEditorManager is in the global classloader, the hack has the potential to break any other applications deployed to the container / break the container. That is why using an EL function is the correct and only solution. > 3) Is there any fix regarding spaces issue? > > > > > Thanks and Regards, > > Preeti Agarwal >