Hi all,

I installed Nuxeo 5.2 (64b) in Windows 2008 Server (64b) with PostgreSQL 8.3 
and JVM 1.6 (64b)
I used postgresql-8.4-701.jdbc4.jar and I configured Nuxeo VCS.

I discovered today that search engine have strange behaviour...
Indeed, it can't understand query with space like " domain default  "

For more details : 
+org.nuxeo.ecm.core.api.ClientException: Failed to execute query: ERROR: syntax 
error in tsquery: "default domain"+
  +Où : SQL function "nx_contains" during inlining+
+       at 
org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1403)+
+       at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)+
+       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+       at java.lang.reflect.Method.invoke(Method.java:597)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)+
+       at 
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)+
+       at 
org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.nuxeo.jboss.interceptors.NXSessionSynchronizationInterceptor.invoke(NXSessionSynchronizationInterceptor.java:153)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)+
+       at 
org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:166)+
+       at 
org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:115)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)+
+       at 
org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)+
+       at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)+
+       at 
org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:206)+
+       at 
org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:119)+
+       at $Proxy238.query(Unknown Source)+
+       at 
org.nuxeo.ecm.core.search.api.client.querymodel.QueryModel.getResultsProvider(QueryModel.java:168)+
+       at 
org.nuxeo.ecm.webapp.search.SearchActionsBean.getResultsProvider(SearchActionsBean.java:514)+
+       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)+
+       at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)+
+       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+       at java.lang.reflect.Method.invoke(Method.java:597)+
+       at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)+
+       at 
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)+
+       at 
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:36)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:65)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)+
+       at org.jboss.seam.util.Work.workInTransaction(Work.java:41)+
+       at 
org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)+
+       at 
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)+
+       at 
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)+
+       at 
org.nuxeo.ecm.webapp.search.SearchActionsBean_$$_javassist_21.getResultsProvider(SearchActionsBean_$$_javassist_21.java)+
+       at 
org.nuxeo.ecm.webapp.pagination.ResultsProvidersCacheBean.get(ResultsProvidersCacheBean.java:144)+
+       at 
org.nuxeo.ecm.webapp.pagination.ResultsProvidersCacheBean.get(ResultsProvidersCacheBean.java:126)+
+       at sun.reflect.GeneratedMethodAccessor202.invoke(Unknown Source)+
+       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+       at java.lang.reflect.Method.invoke(Method.java:597)+
+       at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)+
+       at 
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)+
+       at 
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)+
+       at 
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)+
+       at 
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)+
+       at 
org.nuxeo.ecm.webapp.pagination.ResultsProvidersCacheBean_$$_javassist_14.get(ResultsProvidersCacheBean_$$_javassist_14.java)+
+       at 
org.nuxeo.ecm.webapp.search.SearchActionsBean.performSearch(SearchActionsBean.java:335)+
+       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)+
+       at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)+
+       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+       at java.lang.reflect.Method.invoke(Method.java:597)+
+       at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)+
+       at 
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)+
+       at 
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:65)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)+
+       at org.jboss.seam.util.Work.workInTransaction(Work.java:41)+
+       at 
org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)+
+       at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)+
+       at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)+
+       at 
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)+
+       at 
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)+
+       at 
org.nuxeo.ecm.webapp.search.SearchActionsBean_$$_javassist_21.performSearch(SearchActionsBean_$$_javassist_21.java)+
+       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)+
+       at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)+
+       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+       at java.lang.reflect.Method.invoke(Method.java:597)+
+       at 
org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:329)+
+       at 
org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:342)+
+       at 
org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)+
+       at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)+
+       at 
org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)+
+       at 
com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)+
+       at 
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)+
+       at 
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)+
+       at javax.faces.component.UICommand.broadcast(UICommand.java:387)+
+       at 
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:317)+
+       at 
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:292)+
+       at 
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:249)+
+       at 
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:462)+
+       at 
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)+
+       at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)+
+       at 
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)+
+       at 
org.nuxeo.ecm.platform.ui.web.lifecycle.NuxeoLifeCycleImpl.execute(NuxeoLifeCycleImpl.java:83)+
+       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)+
+       at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)+
+       at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)+
+       at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)+
+       at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)+
+       at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)+
+       at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)+
+       at 
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)+
+       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)+
+       at 
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)+
+       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)+
+       at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)+
+       at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)+
+       at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)+
+       at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)+
+       at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.nuxeo.ecm.platform.ui.web.rest.FancyURLFilter.doFilter(FancyURLFilter.java:116)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilter(NuxeoAuthenticationFilter.java:462)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.nuxeo.ecm.platform.web.common.requestcontroller.filter.NuxeoRequestControllerFilter.doFilter(NuxeoRequestControllerFilter.java:106)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.nuxeo.ecm.platform.web.common.exceptionhandling.NuxeoExceptionFilter.doFilter(NuxeoExceptionFilter.java:61)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)+
+       at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)+
+       at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)+
+       at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)+
+       at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)+
+       at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)+
+       at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)+
+       at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)+
+       at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)+
+       at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)+
+       at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)+
+       at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)+
+       at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)+
+       at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)+
+       at java.lang.Thread.run(Thread.java:619)+
+Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception: 
org.nuxeo.ecm.core.query.QueryException. message: Invalid query: SELECT * FROM 
Document WHERE ecm:fulltext LIKE 'default domain' AND+
        +ecm:mixinType != 'HiddenInNavigation' AND+
        +ecm:isCheckedInVersion = 0 AND+
        +ecm:currentLifeCycleState != 'deleted'+
+       at 
org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession$SQLSessionQuery.execute(SQLSession.java:457)+
+       at 
org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1350)+
+       ... 172 more+
+Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception: 
org.nuxeo.ecm.core.storage.StorageException. message: Invalid query: SELECT * 
FROM Document WHERE ecm:fulltext LIKE 'default domain' AND+
        +ecm:mixinType != 'HiddenInNavigation' AND+
        +ecm:isCheckedInVersion = 0 AND+
        +ecm:currentLifeCycleState != 'deleted'+
+       at 
org.nuxeo.ecm.core.storage.sql.SessionImpl.query(SessionImpl.java:590)+
+       at 
org.nuxeo.ecm.core.storage.sql.ra.ConnectionImpl.query(ConnectionImpl.java:257)+
+       at 
org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession$SQLSessionQuery.execute(SQLSession.java:452)+
+       ... 173 more+
+Caused by: org.nuxeo.ecm.core.api.WrappedException: Exception: 
org.postgresql.util.PSQLException. message: ERROR: syntax error in tsquery: 
"default domain"+
  +Où : SQL function "nx_contains" during inlining+
+       at 
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)+
+       at 
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)+
+       at 
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)+
+       at 
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)+
+       at 
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)+
+       at 
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)+
+       at sun.reflect.GeneratedMethodAccessor143.invoke(Unknown Source)+
+       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+       at java.lang.reflect.Method.invoke(Method.java:597)+
+       at 
org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:455)+
+       at $Proxy360.executeQuery(Unknown Source)+
+       at org.nuxeo.ecm.core.storage.sql.Mapper.query(Mapper.java:1791)+
+       at 
org.nuxeo.ecm.core.storage.sql.SessionImpl.query(SessionImpl.java:588)+
+       ... 175 more+

I think it's a jdbc problem but I'm not really sure. 

Does Anybody had the same problem ?

Many thanks for your response.
--
Posted by "jm.pascal" at Nuxeo Discussions <http://nuxeo.org/discussions>
View the complete thread: 
<http://www.nuxeo.org/discussions/thread.jspa?threadID=2695#7695>
_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm
To unsubscribe, go to http://lists.nuxeo.com/mailman/options/ecm

Reply via email to