An error occurred in template Page._additionalHead.ftl for Content with ID 7519614.
Show Details
FreemarkerView[template=/jar:id:contentproperty:/Themes/insinkerator/templates/insinkerator-templates.jar/archive!/META-INF/resources/WEB-INF/templates/insinkerator/com.coremedia.blueprint.common.contentbeans/Page._additionalHead.ftl]
com.coremedia.blueprint.cae.contentbeans.PageImpl$$[navigation=com.coremedia.blueprint.cae.contentbeans.CMChannelImpl[id=7519614], content=com.coremedia.blueprint.cae.contentbeans.CMChannelImpl[id=7519614]]
Error rendering view
Current store context is not set.
com.coremedia.blueprint.cae.contentbeans.PageImpl$$
com.coremedia.objectserver.dataviews.DataView
com.coremedia.dispatch.HasCustomType
com.coremedia.blueprint.cae.contentbeans.PageImpl
com.coremedia.blueprint.common.contentbeans.Page
com.coremedia.blueprint.cae.contentbeans.AbstractPageImpl
com.coremedia.blueprint.common.contentbeans.AbstractPage
com.coremedia.blueprint.common.datevalidation.ValidityPeriod
com.coremedia.objectserver.dataviews.AssumesIdentity
java.lang.Object
com.coremedia.objectserver.view.ViewException: Error rendering view
at com.coremedia.objectserver.view.ViewUtils.rethrow(ViewUtils.java:344)
at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:154)
at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:184)
at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:124)
at com.coremedia.objectserver.view.freemarker.impl.CAEFreemarkerFacadeImpl.include(CAEFreemarkerFacadeImpl.java:159)
at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552)
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73)
at freemarker.core.MethodCall._eval(MethodCall.java:62)
at freemarker.core.Expression.eval(Expression.java:101)
at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
at freemarker.core.Environment.visit(Environment.java:383)
at freemarker.core.Environment.visitAndTransform(Environment.java:514)
at freemarker.core.CompressedBlock.accept(CompressedBlock.java:42)
at freemarker.core.Environment.visit(Environment.java:383)
at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:889)
at freemarker.core.Environment.invokeMacro(Environment.java:825)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at freemarker.core.Environment.visit(Environment.java:347)
at freemarker.core.Environment.visit(Environment.java:353)
at freemarker.core.Environment.process(Environment.java:326)
at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:150)
at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:346)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:135)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:344)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:428)
at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:184)
at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:124)
at com.coremedia.objectserver.view.freemarker.impl.CAEFreemarkerFacadeImpl.include(CAEFreemarkerFacadeImpl.java:159)
at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552)
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73)
at freemarker.core.MethodCall._eval(MethodCall.java:62)
at freemarker.core.Expression.eval(Expression.java:101)
at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
at freemarker.core.Environment.visit(Environment.java:383)
at freemarker.core.Environment.visitAndTransform(Environment.java:514)
at freemarker.core.CompressedBlock.accept(CompressedBlock.java:42)
at freemarker.core.Environment.visit(Environment.java:383)
at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:889)
at freemarker.core.Environment.invokeMacro(Environment.java:825)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at freemarker.core.Environment.visit(Environment.java:347)
at freemarker.core.Environment.visit(Environment.java:353)
at freemarker.core.Environment.process(Environment.java:326)
at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:150)
at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:122)
at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:113)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:334)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:336)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:336)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422)
at com.coremedia.objectserver.view.ExceptionHandlingViewDecorator$ExceptionDecorator.decorate(ExceptionHandlingViewDecorator.java:113)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingBaseView.render(ViewDecoratorBase.java:334)
at com.coremedia.objectserver.view.ViewDecoratorBase$DecoratingServletAndTextView.render(ViewDecoratorBase.java:422)
at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:152)
at com.coremedia.objectserver.view.ViewUtils.render(ViewUtils.java:109)
at com.coremedia.objectserver.view.BeanView.renderMergedOutputModel(BeanView.java:63)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084)
at com.coremedia.objectserver.web.DispatcherServlet.doDispatch(DispatcherServlet.java:69)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.livecontext.fragment.FragmentContextProvider.doFilter(FragmentContextProvider.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.blueprint.cae.filter.PreviewViewFilter.doFilterInternal(PreviewViewFilter.java:48)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.blueprint.cae.filter.SiteFilter.doFilter(SiteFilter.java:54)
at com.emerson.globalization.web.filter.VirtualSiteFilter.doFilter(VirtualSiteFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.livecontext.preview.PreviewMarkerFilter.doFilter(PreviewMarkerFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.blueprint.livecontext.ecommerce.filter.CommerceConnectionFilter.doFilter(CommerceConnectionFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.blueprint.cae.filter.SiteFilter.doFilter(SiteFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
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:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.emerson.blueprint.component.cae.csrf.CsrfLegacyTokenGetterFilter.doFilterInternal(CsrfLegacyTokenGetterFilter.java:19)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.coremedia.blueprint.cae.filter.RequestRejectedExceptionFilter.doFilter(RequestRejectedExceptionFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1787)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.coremedia.blueprint.base.livecontext.ecommerce.common.NoStoreContextAvailable: Current store context is not set.
at com.coremedia.blueprint.base.livecontext.ecommerce.common.CurrentStoreContext.lambda$get$0(CurrentStoreContext.java:31)
at java.base/java.util.Optional.orElseThrow(Optional.java:408)
at com.coremedia.blueprint.base.livecontext.ecommerce.common.CurrentStoreContext.get(CurrentStoreContext.java:31)
at com.emerson.web.taglib.EmersonFreemarkerFacade.getStoreContext(EmersonFreemarkerFacade.java:552)
at jdk.internal.reflect.GeneratedMethodAccessor373.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552)
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73)
at freemarker.core.MethodCall._eval(MethodCall.java:62)
at freemarker.core.Expression.eval(Expression.java:101)
at freemarker.core.ReturnInstruction.accept(ReturnInstruction.java:38)
at freemarker.core.Environment.visit(Environment.java:383)
at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:889)
at freemarker.core.Environment.invokeMacro(Environment.java:825)
at freemarker.core.Environment.invokeFunction(Environment.java:841)
at freemarker.core.MethodCall._eval(MethodCall.java:65)
at freemarker.core.Expression.eval(Expression.java:101)
at freemarker.core.Assignment.accept(Assignment.java:134)
at freemarker.core.Environment.visit(Environment.java:347)
at freemarker.core.Environment.visit(Environment.java:353)
at freemarker.core.Environment.process(Environment.java:326)
at com.coremedia.objectserver.view.freemarker.FreemarkerViewEngine$FreemarkerView.render(FreemarkerViewEngine.java:150)
... 196 more

In an effort to fit everything into your kitchen, you may have resorted to storing items such as a bread maker, your food processor and mixing bowls on the kitchen worktops, as they simply won’t fit into the cupboards.

This is regrettable, because clear kitchen work surfaces are highly desirable, creating a more relaxing, luxurious and spacious feel to a kitchen. Clear kitchen counters are particularly important if you use your kitchen for entertaining and socialising − the clutter must be hidden behind closed cupboard doors for a sleek, multi-purpose area.


How do I maximise my kitchen cabinet storage?

If you think that you have no more room in your kitchen cupboards to store everything you would like, you may be surprised. There are so many clever kitchen cupboard space saving ideas that will make your life easier. These hacks will streamline your cupboards, creating space and saving time. Every item should have a set place and therefore be quick to find.

Take a look at the list below − one or two tips are sure to catch your eye and make all the difference to your everyday tasks and the look and feel of your kitchen.


Uniformity with the same size jars

You can make the most of your cupboard space by decanting dry food into glass jars which are all the same size. If the jars are equal in size, it will be easier to stack them, line them up and fit them into the space.

Not only will this maximise space, but you will also now be able to see the contents which will save you time when reaching into the cupboard for an ingredient. You can add printed labels if you want a professional look.

Image of Kitchen Cupboard Space Saving Ideas - Image 1


Tension rods to hand cleaning products under the sink

The under sink area can quickly become cluttered and this can lead to the cupboard doors being forced shut, leading to chemical spills. By simply adding a rod to run across the inside of the cupboard you will be able to hook all the spray-bottle cleaning products onto it by the spray handles. This will allow the bottles to slot in and kept stable and upright. By doing this, you will effectively double the size of your under sink cupboard space as you can utilise the area underneath the hanging bottles.


A DIY coffee pod holder

You might not feel like we can live without your Nespresso machine, but those coffee pods can be awkward to store, especially if you’re buying them in large quantities.

One easy solution is to fix t-molding to the top of the inside of your cupboard for the perfect DIY pod holder. T-molding is plastic edging with a ‘T’ shape on the end that you will be able to buy in your local DIY store. Once the t-molding is fixed in parallel lines to the top of the cupboard inside, simply slot the rows of pods in! Very satisfying.

Image of Kitchen Cupboard Space Saving Ideas - Image 2


A slim-line kitchen cupboard in the wall

If you are looking for a space saving idea with a difference, this is a way to maximise all space, even if you have a small kitchen. You can make use of the hidden space between the studs in your walls, by excavating and adding shelves and a cupboard door. The cupboard will be narrow in depth, but there will be enough space to line up and hide away all your tins and jars of food. You can paint the cupboard in a fashionable grey or duck egg and it will look very chic.


A kitchen food disposer under the sink

About a third of all food produced in the UK or imported into the country is wasted. It is vital that we recycle our food waste.

Organising your kitchen cupboards create more space, so that everything in your kitchen can have a place and be hidden from sight. It will also help you to reduce your waste, as you will be able to see your products to keep a note of use-by dates and to know your exact stock so that you don’t overbuy. 

You can also install a food waste disposer in your kitchen sink as this is compact, freeing up cupboard space that would otherwise be taken up by a bulky, smelly, food caddy or bin.

The food waste disposer grinds food waste into tiny particles that are flushed away down a standard kitchen drain into the local wastewater treatment system or septic tank, thereby diverting waste away from landfill.


A plastic bag dispenser

Re-using plastic bags is great, but they can take up so much space in a kitchen cupboard. Take an empty rectangular tissue box and simply stick it to the inside of a kitchen cupboard door. You can then put all the bags into the tissue box dispenser and pull them out as needed.


A microwave storage shelf

Whether your microwave is on your countertop or in a cupboard, a microwave shelf is perfect for utilising the area above your microwave to create some extra storage.


A three-tie bamboo corner shelf

Plates, food, paperwork - anything can be stacked on this bamboo shelf. The three tiers provide so much for space for a kitchen cupboard corner that rarely gets used.


A stackable two-tier sliding basket organiser

This stackable two-tier under sink sliding basket organiser is a good example of a space-saving basket organiser which will slot into cupboards or under the sink to add more shelves. The basket drawers are hard-wearing and can hold anything from vegetables to laundry detergent.


Moving wine glasses to the pantry

Another space saving idea is to move items that you don’t need every day into your pantry. Cupboards should be organised for use, no cupboard contents is set in stone. So things like wine and cocktail glasses and champagne saucers and flutes can be stored in the pantry, freeing up space in a cupboard containing everyday mugs and glasses.

Image of Hero - Kitchen Cupboard Space Saving Ideas - Image 3


Blind corner pull-outs

A blind corner cupboard is ‘blind’ in that you can’t see what is inside the corner of the cupboard. In this case, the kitchen cupboard is positioned at the corner, between where two rows of base cupboards meet. This results in part of one cupboard's contents being hidden by the other row of cupboards.

The fact that the corner is difficult to access means that you can’t easily utilise this space. The solution is to install a blind corner pull-out shelving system. When you open the cupboard door, the pull-out will unfurl to reveal all the things you need within immediate reach.

Please enable JavaScript to use this website.