Page 1 of 1
Add button on Promotion tab does nothing
Posted: Thu Sep 20, 2012 2:36 pm
by dsailer
When I click the Green + / Add button to build a new offer nothing happens. I have firebug enabled and I see no POST or GET request. And there are no messages in the server log.
Re: Add button on Promotion tab does nothing
Posted: Thu Sep 20, 2012 4:15 pm
by phillipuniverse
This is resolved in the latest GA snapshot.
Re: Add button on Promotion tab does nothing
Posted: Thu Sep 20, 2012 4:22 pm
by phillipuniverse
Re: Add button on Promotion tab does nothing
Posted: Fri Sep 21, 2012 9:36 am
by dsailer
I updated my code to use "2.0.0-GA-SNAPSHOT". It actually worked on my local windows laptop, but when I migrated the same code to our linux server I am getting another error:
2012-09-21 09:30:26,576 INFO [org.apache.catalina.core.ContainerBase] admin: WARNING: Failed to get the SerializationPolicy '03E774071DB5166ABE1ED7B45F004FC5' for module 'https://bugs.corp.ybusa.net:8443/broadleaf/admin/com.hibu.gwt.hibuAdmin/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.
2012-09-21 09:30:26,675 INFO [STDOUT] [ERROR] 09:30:26 CompatibleGWTSecuredRPCServiceExporter - Could not decode the request
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Invalid type signature for [Lorg.broadleafcommerce.openadmin.client.dto.ForeignKey;
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:315)
at org.broadleafcommerce.openadmin.security.CompatibleGWTSecuredRPCServiceExporter.processCall(CompatibleGWTSecuredRPCServiceExporter.java:99)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.handleRequest(GWTRPCServiceExporter.java:478)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.broadleafcommerce.openadmin.security.AdminSandBoxFilter.doFilterInternal(AdminSandBoxFilter.java:70)
.
.
.
.
Caused by: com.google.gwt.user.client.rpc.SerializationException: Invalid type signature for [Lorg.broadleafcommerce.openadmin.client.dto.ForeignKey;
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.validateTypeVersions(ServerSerializationStreamReader.java:931)
at com.google.gwt.user.server.rpc.impl.ServerSerialization
2012-09-21 09:30:26,676 INFO [STDOUT] StreamReader.deserialize(ServerSerializationStreamReader.java:545)
Re: Add button on Promotion tab does nothing
Posted: Fri Sep 21, 2012 10:04 am
by phillipuniverse
What version were you using? When you update BLC versions you should do a complete 'mvn clean install' of your project, including the GWT compilation phase in the admin. Just to be safe, you might also manually delete the target directories of the required projects before you do 'mvn install'.
Re: Add button on Promotion tab does nothing
Posted: Fri Sep 21, 2012 10:51 am
by dsailer
going to 2.0.0-GA-SNAPSHOT from 2.0.0-RC1-1 required me to update my demo project too. So I did that and now when I click certain products this error is thrown.
2012-09-21 10:47:41,494 INFO [STDOUT] [ERROR] 10:47:41 AdornedTargetListPersistenceModule - Problem fetching results for org.broadleafcommerce.core.catalog.domain.CategoryProductXrefImpl
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.broadleafcommerce.openadmin.server.service.persistence.module.BasicPersistenceModule.extractPropertiesFromPersistentEntity(BasicPersistenceModule.java:444)
at org.broadleafcommerce.openadmin.server.service.persistence.module.BasicPersistenceModule.getRecords(BasicPersistenceModule.java:327)
at org.broadleafcommerce.openadmin.server.service.persistence.module.AdornedTargetListPersistenceModule.fetch(AdornedTargetListPersistenceModule.java:393)
at org.broadleafcommerce.openadmin.server.service.persistence.PersistenceManagerImpl.fetch(PersistenceManagerImpl.java:241)
at org.broadleafcommerce.openadmin.server.service.DynamicEntityRemoteService.fetch(DynamicEntityRemoteService.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy441.fetch(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.invokeMethodOnService(GWTRPCServiceExporter.java:245)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.processCall(GWTRPCServiceExporter.java:410)
at org.broadleafcommerce.openadmin.security.CompatibleGWTSecuredRPCServiceExporter.processCall(CompatibleGWTSecuredRPCServiceExporter.java:105)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.handleRequest(GWTRPCServiceExporter.java:478)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.broadleafcommerce.openadmin.security.AdminSandBoxFilter.doFilterInternal(AdminSandBoxFilter.java:70)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.springframework.web.f
2012-09-21 10:47:41,495 INFO [STDOUT] ilter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:147)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
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:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:543)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.NullPointerException
at org.broadleafcommerce.core.catalog.domain.ProductImpl.getName(ProductImpl.java:223)
at org.broadleafcommerce.core.catalog.domain.ProductImpl.getUrlKey(ProductImpl.java:712)
... 102 more
2012-09-21 10:47:41,865 INFO [STDOUT] [ WARN] 10:47:41 CompatibleGWTSecuredRPCServiceExporter - org.broadleafcommerce.common.exception.ServiceException: Unable to fetch results for org.broadleafcommerce.core.catalog.domain.CategoryProductXrefImpl
Re: Add button on Promotion tab does nothing
Posted: Fri Sep 21, 2012 1:48 pm
by dsailer
Also getting this adding a new product. This is using MySQL 5.5 When I upraded to 2.0 GA the schema was updated automatically.
13:41:44,105 INFO [STDOUT] Hibernate: insert into BLC_PRODUCT (ARCHIVED, CAN_SELL_WITHOUT_OPTIONS, DEFAULT_CATEGORY_ID, DISPLAY_TEMPLATE, IS_FEATURED
_PRODUCT, MANUFACTURE, MODEL, URL, URL_KEY, PRODUCT_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
13:41:44,113 INFO [STDOUT] [ WARN] 13:41:44 JDBCExceptionReporter - SQL Error: 1364, SQLState: HY000
13:41:44,114 INFO [STDOUT] [ERROR] 13:41:44 JDBCExceptionReporter - Field 'DEFAULT_SKU_ID' doesn't have a default value
13:41:44,129 INFO [STDOUT] [ERROR] 13:41:44 ProductCustomPersistenceHandler - Unable to add entity for org.broadleafcommerce.core.catalog.domain.Prod
uctImpl
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
Re: Add button on Promotion tab does nothing
Posted: Fri Sep 21, 2012 2:29 pm
by phillipuniverse
Ah I think I know the problem. Somewhat at the last minute, due to performance issues we saw with Hibernate we moved the owning side of the default Sku relationship (which every Product has) to the Sku side. So now, Sku has a DEFAULT_PRODUCT_ID which it didn't have before. Previously, BLC_PRODUCT had a DEFAULT_SKU_ID column to manage this relationship.
If you run the following SQL (
*******AT YOUR OWN RISK - BACKUP YOUR DATABASE FIRST*********) it should move your data correctly to the new relationship, thus eliminating the earlier NPE:
Code: Select all
UPDATE BLC_SKU AS sku SET sku.DEFAULT_PRODUCT_ID = (SELECT PRODUCT_ID FROM BLC_PRODUCT WHERE DEFAULT_SKU_ID = sku.SKU_ID)
Then you can simply delete the DEFAULT_SKU_ID column from BLC_PRODUCT as it is not used anymore and will not be populated. That's the reason for the JDBC error that you're getting. If you have Hibernate's DDL set to 'update' it will only add columns and will not remove them. This column in particular is set to 'nullable = false' but with the restructure this column will never be set in BLC_PRODUCT.
Re: Add button on Promotion tab does nothing
Posted: Fri Sep 21, 2012 2:51 pm
by dsailer
Thank you. That fixed it up.