Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-7829

Exception thrown while trying to write to bandana

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not a bug
    • Low
    • None
    • 2.3.1
    • None
    • Window XP, Tomcat 5.5, mysql 5.0, Java 1.5.0_10, DWR2.0-rc1 running confluence 2.3.1 (with plugins patch) inside idea 5.1

    Description

      Every time I try to write to bandana as a result of a DWR request I get the following exception

      ------------
      2007-02-08 18:56:09,734 WARN [http-8080-Processor20] [atlassian.confluence.cache.TransactionalCacheFactory] before Transactional cache update outside transaction
      java.lang.Exception
      at com.atlassian.confluence.cache.WarnBeforeMethodAdvice.before(WarnBeforeMethodAdvice.java:29)
      at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
      at $Proxy60.put(Unknown Source)
      at com.atlassian.confluence.setup.bandana.ConfluenceCachingBandanaPersister.store(ConfluenceCachingBandanaPersister.java:118)
      at com.atlassian.bandana.DefaultBandanaManager.setValue(DefaultBandanaManager.java:74)
      at com.adaptavist.confluence.builder.layouts.LayoutManager.writeSpaceDefaults(LayoutManager.java:123)
      at com.adaptavist.confluence.builder.layouts.LayoutManager.setSpaceLayoutLock(LayoutManager.java:319)
      at com.adaptavist.confluence.builder.adminlayouts.AdminLayoutsDWR.setValue(AdminLayoutsDWR.java:94)
      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:585)
      at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
      at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:411)
      at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:414)
      at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:273)
      at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
      at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:104)
      at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:120)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at com.atlassian.plugin.descriptors.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:38)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:182)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:159)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
      at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:122)
      at com.atlassian.core.filters.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:27)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:61)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:37)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      at java.lang.Thread.run(Thread.java:595)
      -----------

      I am attempting to write the following bean :

      -----------
      package com.adaptavist.confluence.builder.layouts.model;

      public class SpaceDefault {
      private String layoutId;
      private boolean locked;

      public SpaceDefault() {
      }

      public SpaceDefault(String layoutId, boolean locked)

      { this.layoutId = layoutId; this.locked = locked; }

      public String getLayoutId()

      { return layoutId; }

      public void setLayoutId(String layoutId)

      { this.layoutId = layoutId; }

      public boolean isLocked()

      { return locked; }

      public void setLocked(boolean locked)

      { this.locked = locked; }

      }
      -----------

      Where layoutId == 'test1' and locked == 'true' (or false, happens either way), I am using the following code to call for the write:

      ----------
      private static final String SPACE_DEFAULTS = "com.adaptavist.confluence.builder.themes.spaceDefaults";
      private TreeMap spaceDefaults;

      private void writeSpaceDefaults()

      { bandanaManager.setValue( new ConfluenceBandanaContext(), SPACE_DEFAULTS, xStream.toXML(spaceDefaults) ); }

      public void setSpaceLayoutLock (String spacekey, boolean locked) throws BuilderException {
      initData();
      if (spacekey==null)

      { spacekey = GLOBAL_SPACE; }

      SpaceDefault spaceDefault = (SpaceDefault) spaceDefaults.get(spacekey);
      if (spaceDefault==null)

      { spaceDefault = new SpaceDefault(DEFAULT_LAYOUT_ID,locked); }

      else

      { spaceDefault.setLocked(locked); }

      spaceDefaults.put(spacekey,spaceDefault);
      writeSpaceDefaults();
      }
      ----------

      To be honest .. this also happens with every other write I have ever attempted to make to bandana in 2.3 when called through DWR, however with the other writes the data was actually getting written away so I have left it as something that could be resolved later (when 2.3 is a bit more stable) ... however for this write the data is NOT getting written away, hence this is causing me major problems in my development work.

      Attachments

        Issue Links

          Activity

            People

              christopher.owen@atlassian.com Christopher Owen [Atlassian]
              9fcfb21963e3 Alain Moran
              Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: