On Thu, Oct 31, 2024 at 8:33 AM Jasper Timmer <[email protected]> wrote: > > Who knows what library is making a mistake here? I'm not sure how to solve > this. I'm calling a openapi.json URL in our application. > > Thanks for any pointers,
That looks very peculiar: as if someone was trying to deserialize `ObjectMapper` from JSON, which makes absolutely no sense. ObjectMapper can not be deserialized (or probably even serialized). But that goes to the question of what is trying to make that call: and perhaps object model has problem of exposing non-serializable objects when it should not. I do not see this as a Jackson issue from looks of it, but whatever is calling it. -+ Tatu +- > > Jasper > > org.glassfish.jersey.server.internal.process.MappableException: > java.lang.IllegalArgumentException: Conflicting setter definitions for > property "config": > com.fasterxml.jackson.databind.ObjectMapper#setConfig(com.fasterxml.jackson.databind.DeserializationConfig) > vs > com.fasterxml.jackson.databind.ObjectMapper#setConfig(com.fasterxml.jackson.databind.SerializationConfig) > at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.mapTargetToRuntimeEx(AbstractJavaResourceMethodDispatcher.java:207) > at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:177) > at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189) > at > org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176) > at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93) > at > org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478) > at > org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400) > at > org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) > at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274) > at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) > at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) > at org.glassfish.jersey.internal.Errors.process(Errors.java:292) > at org.glassfish.jersey.internal.Errors.process(Errors.java:274) > at org.glassfish.jersey.internal.Errors.process(Errors.java:244) > at > org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266) > at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253) > at > org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696) > at > org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397) > at > org.glassfish.jersey.servlet.ServletContainer.serviceImpl(ServletContainer.java:378) > at > org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:554) > at > org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:494) > at > org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:431) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) > at > org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) > at > org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) > at > org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) > at > org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) > at > org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > com.acme.view.common.filter.AbstractAuthorizationFilter.doFilterInternal(AbstractAuthorizationFilter.java:35) > at com.acme.view.common.filter.AbstractFilter.doFilter(AbstractFilter.java:26) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > com.acme.view.common.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:39) > at com.acme.view.common.filter.AbstractFilter.doFilter(AbstractFilter.java:26) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > com.acme.view.common.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:39) > at com.acme.view.common.filter.AbstractFilter.doFilter(AbstractFilter.java:26) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > com.acme.view.common.filter.AbstractAuthenticationExtractionFilter.doFilterInternal(AbstractAuthenticationExtractionFilter.java:31) > at com.acme.view.common.filter.AbstractFilter.doFilter(AbstractFilter.java:26) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > com.acme.view.common.filter.AbstractAuthenticationExtractionFilter.doFilterInternal(AbstractAuthenticationExtractionFilter.java:31) > at com.acme.view.common.filter.AbstractFilter.doFilter(AbstractFilter.java:26) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) > at > org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) > at > org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) > at > org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) > at > org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) > at > org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) > at > org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) > at > org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) > at > org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) > at > org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) > at > org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > com.acme.view.common.filter.ErrorHandlerFilter.doFilterInternal(ErrorHandlerFilter.java:38) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) > at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) > at > org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) > at > org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) > at java.base/java.lang.Thread.run(Thread.java:840) > Caused by: java.lang.IllegalArgumentException: Conflicting setter definitions > for property "config": > com.fasterxml.jackson.databind.ObjectMapper#setConfig(com.fasterxml.jackson.databind.DeserializationConfig) > vs > com.fasterxml.jackson.databind.ObjectMapper#setConfig(com.fasterxml.jackson.databind.SerializationConfig) > at > com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder._selectSetterFromMultiple(POJOPropertyBuilder.java:561) > at > com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getSetter(POJOPropertyBuilder.java:492) > at > io.swagger.v3.jaxrs2.DefaultParameterExtension.handleAdditionalAnnotation(DefaultParameterExtension.java:172) > at > io.swagger.v3.jaxrs2.DefaultParameterExtension.extractParameters(DefaultParameterExtension.java:103) > at > io.swagger.v3.jaxrs2.util.ReaderUtils.collectParameters(ReaderUtils.java:118) > at > io.swagger.v3.jaxrs2.util.ReaderUtils.collectFieldParameters(ReaderUtils.java:111) > at io.swagger.v3.jaxrs2.Reader.read(Reader.java:418) > at io.swagger.v3.jaxrs2.Reader.read(Reader.java:199) > at io.swagger.v3.jaxrs2.Reader.read(Reader.java:228) > at > io.swagger.v3.oas.integration.GenericOpenApiContext.read(GenericOpenApiContext.java:657) > at > io.swagger.v3.jaxrs2.integration.resources.BaseOpenApiResource.getOpenApi(BaseOpenApiResource.java:51) > at > io.swagger.v3.jaxrs2.integration.resources.OpenApiResource.getOpenApi(OpenApiResource.java:32) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:569) > at > org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) > at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146) > ... 162 common frames omitted > > -- > You received this message because you are subscribed to the Google Groups > "jackson-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jackson-user/2cbd66b6-6bbc-469b-a9cb-9351fd5bde4fn%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/jackson-user/CAGrxA246Lm5cE-AUzL-rq3AaRoV2g7OC5vz5JTwn-2VLvxPoHw%40mail.gmail.com.
