Advertisement
Guest User

stacktrace using ivy.repo in JAX-RS resource

a guest
Jan 23rd, 2019
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 18.80 KB | None | 0 0
  1. Unable to provision, see the following errors:
  2.  
  3. 1) Error in custom provider, java.lang.NullPointerException
  4.   while locating ch.ivyteam.ivy.scripting.dataclass.internal.di.IvyCaseProjectClassLoaderProvider
  5.   while locating java.lang.ClassLoader annotated with interface ch.ivyteam.ivy.scope.restricted.FromCaseScope
  6. Caused by: java.lang.NullPointerException
  7.     at ch.ivyteam.ivy.scripting.dataclass.internal.di.IvyCaseProjectClassLoaderProvider.get(IvyCaseProjectClassLoaderProvider.java:20)
  8.     at ch.ivyteam.ivy.scripting.dataclass.internal.di.IvyCaseProjectClassLoaderProvider.get(IvyCaseProjectClassLoaderProvider.java:1)
  9.     at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
  10.     at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
  11.     at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
  12.     at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
  13.     at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
  14.     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
  15.     at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)
  16.     at ch.ivyteam.ivy.business.data.store.restricted.BusinessDataTypeLoader.getContextClassLoader(BusinessDataTypeLoader.java:60)
  17.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.serialize(BusinessDataRepositoryImpl.java:369)
  18.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.lambda$0(BusinessDataRepositoryImpl.java:196)
  19.     at ch.ivyteam.ivy.business.data.store.internal.ElasticSystemDbPersistence.lambda$14(ElasticSystemDbPersistence.java:439)
  20.     at ch.ivyteam.ivy.persistence.base.AbstractPersistencyService.execute(AbstractPersistencyService.java:177)
  21.     at ch.ivyteam.ivy.persistence.base.ClassPersistencyService.execute(ClassPersistencyService.java:673)
  22.     at ch.ivyteam.ivy.business.data.store.internal.ElasticSystemDbPersistence.executeInTransaction(ElasticSystemDbPersistence.java:435)
  23.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.create(BusinessDataRepositoryImpl.java:194)
  24.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.save(BusinessDataRepositoryImpl.java:177)
  25.     at com.example.lab.axonivy.api.TheAwesomeApi.saveAwesomeMessage(TheAwesomeApi.java:35)
  26.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  27.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  28.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  29.     at java.lang.reflect.Method.invoke(Method.java:498)
  30.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler$PmvAwareInvocator.lambda$0(RestPmvInvocationHandler.java:38)
  31.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler.executeWithIvyContext(RestPmvInvocationHandler.java:70)
  32.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler.access$1(RestPmvInvocationHandler.java:65)
  33.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler$PmvAwareInvocator.invoke(RestPmvInvocationHandler.java:50)
  34.     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
  35.     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
  36.     at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)
  37.     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
  38.     at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
  39.     at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
  40.     at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
  41.     at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
  42.     at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
  43.     at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
  44.     at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
  45.     at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
  46.     at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
  47.     at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
  48.     at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
  49.     at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
  50.     at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
  51.     at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
  52.     at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
  53.     at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
  54.     at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
  55.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
  56.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  57.     at ch.ivyteam.ivy.webserver.internal.IvyFilter.doFilterInternal(IvyFilter.java:247)
  58.     at ch.ivyteam.ivy.webserver.internal.IvyFilter.doFilter(IvyFilter.java:152)
  59.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  60.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  61.     at ch.ivyteam.ivy.webserver.internal.IvyExecuteAsSystemFilter$1.call(IvyExecuteAsSystemFilter.java:45)
  62.     at ch.ivyteam.ivy.webserver.internal.IvyExecuteAsSystemFilter$1.call(IvyExecuteAsSystemFilter.java:1)
  63.     at ch.ivyteam.ivy.security.internal.SecurityManager.executeAsSystem(SecurityManager.java:1313)
  64.     at ch.ivyteam.ivy.webserver.internal.IvyExecuteAsSystemFilter.doFilter(IvyExecuteAsSystemFilter.java:39)
  65.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  66.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  67.     at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:124)
  68.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  69.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  70.     at ch.ivyteam.ivy.webserver.internal.startup.IvyEngineUnavailableFilter.doFilter(IvyEngineUnavailableFilter.java:48)
  71.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  72.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  73.     at ch.ivyteam.ivy.webserver.internal.filter.IvyCurrentHttpRequestFilter.doFilter(IvyCurrentHttpRequestFilter.java:39)
  74.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  75.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  76.     at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
  77.     at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
  78.     at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
  79.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  80.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  81.     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
  82.     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
  83.     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
  84.     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
  85.     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
  86.     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
  87.     at ch.ivyteam.ivy.webserver.internal.PerformanceLogValve.invoke(PerformanceLogValve.java:55)
  88.     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
  89.     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
  90.     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
  91.     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
  92.     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
  93.     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  94.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  95.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  96.     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  97.     at java.lang.Thread.run(Thread.java:748)
  98.  
  99. 2) Error in custom provider, com.google.inject.OutOfScopeException: No case available in the current scope/context
  100.   while locating ch.ivyteam.ivy.workflow.internal.di.CaseProvider
  101.   while locating ch.ivyteam.ivy.workflow.ICase
  102.     for field at ch.ivyteam.ivy.scripting.dataclass.internal.di.IvyCaseProjectClassLoaderProvider.caze(IvyCaseProjectClassLoaderProvider.java:1)
  103.   while locating ch.ivyteam.ivy.scripting.dataclass.internal.di.IvyCaseProjectClassLoaderProvider
  104.   while locating java.lang.ClassLoader annotated with interface ch.ivyteam.ivy.scope.restricted.FromCaseScope
  105. Caused by: com.google.inject.OutOfScopeException: No case available in the current scope/context
  106.     at ch.ivyteam.ivy.workflow.internal.di.CaseProvider.get(CaseProvider.java:24)
  107.     at ch.ivyteam.ivy.workflow.internal.di.CaseProvider.get(CaseProvider.java:1)
  108.     at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
  109.     at com.google.inject.internal.ProvidedByInternalFactory.provision(ProvidedByInternalFactory.java:82)
  110.     at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
  111.     at com.google.inject.internal.ProvidedByInternalFactory.get(ProvidedByInternalFactory.java:71)
  112.     at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54)
  113.     at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
  114.     at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:120)
  115.     at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
  116.     at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
  117.     at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:61)
  118.     at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
  119.     at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
  120.     at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)
  121.     at ch.ivyteam.ivy.business.data.store.restricted.BusinessDataTypeLoader.getContextClassLoader(BusinessDataTypeLoader.java:60)
  122.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.serialize(BusinessDataRepositoryImpl.java:369)
  123.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.lambda$0(BusinessDataRepositoryImpl.java:196)
  124.     at ch.ivyteam.ivy.business.data.store.internal.ElasticSystemDbPersistence.lambda$14(ElasticSystemDbPersistence.java:439)
  125.     at ch.ivyteam.ivy.persistence.base.AbstractPersistencyService.execute(AbstractPersistencyService.java:177)
  126.     at ch.ivyteam.ivy.persistence.base.ClassPersistencyService.execute(ClassPersistencyService.java:673)
  127.     at ch.ivyteam.ivy.business.data.store.internal.ElasticSystemDbPersistence.executeInTransaction(ElasticSystemDbPersistence.java:435)
  128.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.create(BusinessDataRepositoryImpl.java:194)
  129.     at ch.ivyteam.ivy.business.data.store.internal.BusinessDataRepositoryImpl.save(BusinessDataRepositoryImpl.java:177)
  130.     at com.example.lab.axonivy.api.TheAwesomeApi.saveAwesomeMessage(TheAwesomeApi.java:35)
  131.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  132.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  133.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  134.     at java.lang.reflect.Method.invoke(Method.java:498)
  135.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler$PmvAwareInvocator.lambda$0(RestPmvInvocationHandler.java:38)
  136.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler.executeWithIvyContext(RestPmvInvocationHandler.java:70)
  137.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler.access$1(RestPmvInvocationHandler.java:65)
  138.     at ch.ivyteam.ivy.webserver.internal.rest.resource.project.RestPmvInvocationHandler$PmvAwareInvocator.invoke(RestPmvInvocationHandler.java:50)
  139.     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
  140.     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
  141.     at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)
  142.     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
  143.     at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
  144.     at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
  145.     at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
  146.     at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
  147.     at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
  148.     at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
  149.     at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
  150.     at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
  151.     at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
  152.     at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
  153.     at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
  154.     at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
  155.     at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
  156.     at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
  157.     at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
  158.     at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
  159.     at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
  160.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
  161.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  162.     at ch.ivyteam.ivy.webserver.internal.IvyFilter.doFilterInternal(IvyFilter.java:247)
  163.     at ch.ivyteam.ivy.webserver.internal.IvyFilter.doFilter(IvyFilter.java:152)
  164.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  165.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  166.     at ch.ivyteam.ivy.webserver.internal.IvyExecuteAsSystemFilter$1.call(IvyExecuteAsSystemFilter.java:45)
  167.     at ch.ivyteam.ivy.webserver.internal.IvyExecuteAsSystemFilter$1.call(IvyExecuteAsSystemFilter.java:1)
  168.     at ch.ivyteam.ivy.security.internal.SecurityManager.executeAsSystem(SecurityManager.java:1313)
  169.     at ch.ivyteam.ivy.webserver.internal.IvyExecuteAsSystemFilter.doFilter(IvyExecuteAsSystemFilter.java:39)
  170.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  171.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  172.     at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:124)
  173.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  174.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  175.     at ch.ivyteam.ivy.webserver.internal.startup.IvyEngineUnavailableFilter.doFilter(IvyEngineUnavailableFilter.java:48)
  176.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  177.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  178.     at ch.ivyteam.ivy.webserver.internal.filter.IvyCurrentHttpRequestFilter.doFilter(IvyCurrentHttpRequestFilter.java:39)
  179.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  180.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  181.     at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
  182.     at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
  183.     at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
  184.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  185.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  186.     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
  187.     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
  188.     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
  189.     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
  190.     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
  191.     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
  192.     at ch.ivyteam.ivy.webserver.internal.PerformanceLogValve.invoke(PerformanceLogValve.java:55)
  193.     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
  194.     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
  195.     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
  196.     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
  197.     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
  198.     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  199.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  200.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  201.     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  202.     at java.lang.Thread.run(Thread.java:748)
  203.  
  204. 2 errors"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement