Menu

#28 Problems intgrating Tobago?!

open
nobody
None
5
2007-04-21
2007-04-21
Anonymous
No

"UnsupportedOperationException" when integration tobago 1.0.1.0

Discussion

  • Nobody/Anonymous

    Logged In: NO

    Added trace:

    java.lang.UnsupportedOperationException
    at de.mindmatters.faces.context.ServletExternalContextFake.getRequestLocales(ServletExternalContextFake.java:390)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.calculateLocale(JspViewHandlerImpl.java:63)
    at org.apache.myfaces.tobago.application.ViewHandlerImpl.calculateLocale(ViewHandlerImpl.java:48)
    at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.calculateLocale(JspTilesViewHandlerImpl.java:298)
    at javax.faces.component.UIViewRoot.getLocale(UIViewRoot.java:200)
    at org.apache.myfaces.tobago.component.UIViewRoot.updateRendererCachePrefix(UIViewRoot.java:78)
    at org.apache.myfaces.tobago.component.UIViewRoot.<init>(UIViewRoot.java:55)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:397)
    at de.mindmatters.faces.application.ApplicationImpl.initComponents(ApplicationImpl.java:321)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:310)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:377)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.configureApplication(JsfStartupProcessor.java:220)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.postProcessBeanFactory(JsfStartupProcessor.java:133)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:422)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:334)
    at de.mindmatters.faces.spring.context.support.DefaultFacesWebApplicationContext.refresh(DefaultFacesWebApplicationContext.java:289)
    at de.mindmatters.faces.spring.context.ContextLoader.createWebApplicationContext(ContextLoader.java:307)
    at de.mindmatters.faces.spring.context.ContextLoader.initWebApplicationContext(ContextLoader.java:161)
    at de.mindmatters.faces.spring.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:61)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    ERROR [main] [2007-04-21 11:09:36,984] [org.apache.myfaces.application.ApplicationImpl]: Could not instantiate component componentType = javax.faces.ViewRoot
    java.lang.UnsupportedOperationException
    at de.mindmatters.faces.context.ServletExternalContextFake.getRequestLocales(ServletExternalContextFake.java:390)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.calculateLocale(JspViewHandlerImpl.java:63)
    at org.apache.myfaces.tobago.application.ViewHandlerImpl.calculateLocale(ViewHandlerImpl.java:48)
    at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.calculateLocale(JspTilesViewHandlerImpl.java:298)
    at javax.faces.component.UIViewRoot.getLocale(UIViewRoot.java:200)
    at org.apache.myfaces.tobago.component.UIViewRoot.updateRendererCachePrefix(UIViewRoot.java:78)
    at org.apache.myfaces.tobago.component.UIViewRoot.<init>(UIViewRoot.java:55)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:397)
    at de.mindmatters.faces.application.ApplicationImpl.initComponents(ApplicationImpl.java:321)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:310)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:377)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.configureApplication(JsfStartupProcessor.java:220)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.postProcessBeanFactory(JsfStartupProcessor.java:133)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:422)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:334)
    at de.mindmatters.faces.spring.context.support.DefaultFacesWebApplicationContext.refresh(DefaultFacesWebApplicationContext.java:289)
    at de.mindmatters.faces.spring.context.ContextLoader.createWebApplicationContext(ContextLoader.java:307)
    at de.mindmatters.faces.spring.context.ContextLoader.initWebApplicationContext(ContextLoader.java:161)
    at de.mindmatters.faces.spring.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:61)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    ERROR [main] [2007-04-21 11:09:37,000] [de.mindmatters.faces.spring.context.ContextLoader]: Context initialization failed
    javax.faces.FacesException: Could not instantiate component componentType = javax.faces.ViewRoot
    at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:402)
    at de.mindmatters.faces.application.ApplicationImpl.initComponents(ApplicationImpl.java:321)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:310)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:377)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.configureApplication(JsfStartupProcessor.java:220)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.postProcessBeanFactory(JsfStartupProcessor.java:133)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:422)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:334)
    at de.mindmatters.faces.spring.context.support.DefaultFacesWebApplicationContext.refresh(DefaultFacesWebApplicationContext.java:289)
    at de.mindmatters.faces.spring.context.ContextLoader.createWebApplicationContext(ContextLoader.java:307)
    at de.mindmatters.faces.spring.context.ContextLoader.initWebApplicationContext(ContextLoader.java:161)
    at de.mindmatters.faces.spring.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:61)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    Caused by: java.lang.UnsupportedOperationException
    at de.mindmatters.faces.context.ServletExternalContextFake.getRequestLocales(ServletExternalContextFake.java:390)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.calculateLocale(JspViewHandlerImpl.java:63)
    at org.apache.myfaces.tobago.application.ViewHandlerImpl.calculateLocale(ViewHandlerImpl.java:48)
    at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.calculateLocale(JspTilesViewHandlerImpl.java:298)
    at javax.faces.component.UIViewRoot.getLocale(UIViewRoot.java:200)
    at org.apache.myfaces.tobago.component.UIViewRoot.updateRendererCachePrefix(UIViewRoot.java:78)
    at org.apache.myfaces.tobago.component.UIViewRoot.<init>(UIViewRoot.java:55)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:397)
    ... 26 more
    ERROR [main] [2007-04-21 11:09:37,015] [org.apache.catalina.core.StandardContext]: Exception sending context initialized event to listener instance of class de.mindmatters.faces.spring.context.ContextLoaderListener
    javax.faces.FacesException: Could not instantiate component componentType = javax.faces.ViewRoot
    at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:402)
    at de.mindmatters.faces.application.ApplicationImpl.initComponents(ApplicationImpl.java:321)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:310)
    at de.mindmatters.faces.application.ApplicationImpl.<init>(ApplicationImpl.java:377)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.configureApplication(JsfStartupProcessor.java:220)
    at de.mindmatters.faces.spring.factory.xml.JsfStartupProcessor.postProcessBeanFactory(JsfStartupProcessor.java:133)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:422)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:334)
    at de.mindmatters.faces.spring.context.support.DefaultFacesWebApplicationContext.refresh(DefaultFacesWebApplicationContext.java:289)
    at de.mindmatters.faces.spring.context.ContextLoader.createWebApplicationContext(ContextLoader.java:307)
    at de.mindmatters.faces.spring.context.ContextLoader.initWebApplicationContext(ContextLoader.java:161)
    at de.mindmatters.faces.spring.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:61)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    Caused by: java.lang.UnsupportedOperationException
    at de.mindmatters.faces.context.ServletExternalContextFake.getRequestLocales(ServletExternalContextFake.java:390)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.calculateLocale(JspViewHandlerImpl.java:63)
    at org.apache.myfaces.tobago.application.ViewHandlerImpl.calculateLocale(ViewHandlerImpl.java:48)
    at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.calculateLocale(JspTilesViewHandlerImpl.java:298)
    at javax.faces.component.UIViewRoot.getLocale(UIViewRoot.java:200)
    at org.apache.myfaces.tobago.component.UIViewRoot.updateRendererCachePrefix(UIViewRoot.java:78)
    at org.apache.myfaces.tobago.component.UIViewRoot.<init>(UIViewRoot.java:55)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:397)
    ... 26 more

     
  • Nobody/Anonymous

    Logged In: NO

    I figured something more out by now:

    Theproblem lies in the class "ServletExternalContextFake" as the stacktrace suggests. Looking in the source, the method getRequestLocales() - like many others - really is only a fake:

    /**
    * {@inheritDoc}
    */
    public Iterator getRequestLocales() {
    throw new UnsupportedOperationException();
    }

    " ... This class implements the nature of a servlet applicaton environment. As it's name says this class fakes the behavior described in the specifications. ... "

    The problem seems to be, that if tobage is included, MyFaces JspViewHandlerImpl class calls this method per default (The external context here ist the ServletExternalContextFake class):

    public Locale calculateLocale(FacesContext facesContext) {
    Iterator locales = facesContext.getExternalContext().getRequestLocales();
    while (locales.hasNext()) {
    Locale locale = (Locale) locales.next();
    for (Iterator it = facesContext.getApplication().getSupportedLocales(); it.hasNext();) {
    Locale supportLocale = (Locale) it.next();
    // higher priority to a language match over an exact match
    // that occures further down (see Jstl Reference 1.0 8.3.1)
    if (locale.getLanguage().equals(supportLocale.getLanguage()) &&
    (supportLocale.getCountry() == null ||
    supportLocale.getCountry().length() == 0)) {
    return supportLocale;
    }
    else if (supportLocale.equals(locale)) {
    return supportLocale;
    }
    }
    }

    Locale defaultLocale = facesContext.getApplication().getDefaultLocale();
    return defaultLocale != null ? defaultLocale : Locale.getDefault();
    }

    Still haven't figure out a way around this...

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.