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

Attempting an image attachment with expired licence create corrupted upload instead of failing

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Low
    • None
    • 2.2.2
    • None
    • N/A

    Description

      Page updates are frozen when an evaluation licence expires, but if you attempt an image upload the thumbnail is still created prior to popping up an error box. Returning to the image upload and clicking on the thumbnail results in an exception, since the attachement itself was never uploaded to the attachments directory (as intended). For completeness, the stacktrace is shown below:

      Cause:
      java.lang.RuntimeException: Attachment data not found where expected
      at com.atlassian.confluence.pages.DefaultAttachmentManager.getAttachmentData(DefaultAttachmentManager.java:36)
      caused by: com.atlassian.confluence.pages.AttachmentDataNotFoundException: Problem while getting attachment stream from file system
      at com.atlassian.confluence.pages.persistence.dao.FileSystemAttachmentDataDao.getDataForAttachment(FileSystemAttachmentDataDao.java:84)
      caused by: java.io.FileNotFoundException: C:\data\standalones\confluence-2.2-std-mysql\home\attachments\4580\113 (The system cannot find the path specified)
      at java.io.FileInputStream.open(Native Method)

      Stack Trace: [hide]

      java.lang.RuntimeException: Attachment data not found where expected
      at com.atlassian.confluence.pages.DefaultAttachmentManager.getAttachmentData(DefaultAttachmentManager.java:36)
      at com.atlassian.confluence.pages.DelegatorAttachmentManager.getAttachmentData(DelegatorAttachmentManager.java:69)
      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.springframework.aop.framework.AopProxyUtils.invokeJoinpointUsingReflection(AopProxyUtils.java:61)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:149)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:116)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:138)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:152)
      at $Proxy4.getAttachmentData(Unknown Source)
      at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl$AcceptImageAttachmentFilter.accept(AbstractRendererExporterImpl.java:289)
      at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.exportPageAttachments(AbstractRendererExporterImpl.java:183)
      at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.exportAttachedImages(AbstractRendererExporterImpl.java:154)
      at com.atlassian.confluence.importexport.impl.PdfExporter.exportHierarchyAttachments(PdfExporter.java:177)
      at com.atlassian.confluence.importexport.impl.PdfExporter.doExportEntity(PdfExporter.java:130)
      at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.exportPage(AbstractRendererExporterImpl.java:148)
      at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.doExport(AbstractRendererExporterImpl.java:114)
      at com.atlassian.confluence.importexport.impl.PdfExporter.doExport(PdfExporter.java:88)
      at com.atlassian.confluence.importexport.DefaultImportExportManager.exportAs(DefaultImportExportManager.java:116)
      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.springframework.aop.framework.AopProxyUtils.invokeJoinpointUsingReflection(AopProxyUtils.java:61)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:149)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:116)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:138)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:152)
      at $Proxy33.exportAs(Unknown Source)
      at com.atlassian.confluence.importexport.actions.ExportPageAction.execute(ExportPageAction.java:107)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:55)
      at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:39)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.atlassian.confluence.core.ConfluenceValidationInterceptor.intercept(ConfluenceValidationInterceptor.java:16)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:39)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:94)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.spaces.actions.SpaceAwareInterceptor.intercept(SpaceAwareInterceptor.java:82)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.core.actions.LastModifiedInterceptor.intercept(LastModifiedInterceptor.java:39)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.core.ConfluenceAutowireInterceptor.intercept(ConfluenceAutowireInterceptor.java:25)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.util.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:133)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:229)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199)
      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.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
      at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:143)
      at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
      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.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:30)
      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.UserThreadLocalFilter.doFilter(UserThreadLocalFilter.java:45)
      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.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:177)
      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:170)
      at bucket.custom.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:31)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:73)
      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.confluence.util.error.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.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:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
      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)
      Caused by: com.atlassian.confluence.pages.AttachmentDataNotFoundException: Problem while getting attachment stream from file system
      at com.atlassian.confluence.pages.persistence.dao.FileSystemAttachmentDataDao.getDataForAttachment(FileSystemAttachmentDataDao.java:84)
      at com.atlassian.confluence.pages.persistence.dao.hibernate.AbstractHibernateAttachmentDao.getAttachmentData(AbstractHibernateAttachmentDao.java:92)
      at com.atlassian.confluence.pages.DefaultAttachmentManager.getAttachmentData(DefaultAttachmentManager.java:32)
      ... 117 more
      Caused by: java.io.FileNotFoundException: C:\data\standalones\confluence-2.2-std-mysql\home\attachments\4580\113 (The system cannot find the path specified)
      at java.io.FileInputStream.open(Native Method)
      at java.io.FileInputStream.(FileInputStream.java:106)
      at com.atlassian.confluence.pages.persistence.dao.FileSystemAttachmentDataDao.getDataForAttachment(FileSystemAttachmentDataDao.java:80)
      ... 119 more

      Referer URL: http://localhost:8080/pages/pageinfo.action?pageId=4365

      Build Information:
      Confluence Home: C:\data\standalones\confluence-2.2-std-mysql\home
      Uptime: 4 minutes, 37 seconds
      Version: 2.2
      Build Number: 512

      Server Information:
      Application Server: Apache Tomcat/5.5.15
      Servlet Version: 2.4
      Database Dialect: bucket.dialect.MySQLDialect
      Database Driver Name: com.mysql.jdbc.Driver
      Database Driver Version: 3.1

      Memory Information:
      Total Memory: 127 MB
      Free Memory: 71 MB
      Used Memory: 57 MB

      System Information:
      System Date: Friday, 02 Jun 2006
      System Time: 15:19:03
      System Favourite Colour: Taupe
      Java Version: 1.5.0_06
      Java Vendor: Sun Microsystems Inc.
      JVM Version: 1.0
      JVM Vendor: Sun Microsystems Inc.
      JVM Implementation Version: 1.5.0_06-b05
      Java Runtime: Java(TM) 2 Runtime Environment, Standard Edition
      Java VM: Java HotSpot(TM) Client VM
      User Name: David Soul
      User Timezone: Australia/Sydney
      Operating System: Windows XP 5.1
      OS Architecture: x86
      Filesystem Encoding: Cp1252

      Enabled Plugins:
      Page Tabs (confluence.sections.page, Version: 1.0)
      Basic Macros (confluence.macros.basic, Version: 1.3)
      Core Listeners (confluence.listeners.core, Version: 1.3)
      Dashboard Macros (confluence.macros.dashboard, Version: 1.3)
      User Listener (confluence.extra.userlister, Version: 1.2)
      Chart Plugin (confluence.extra.chart, Version: 1.5)
      Live Search Macros (confluence.extra.livesearch, Version: 1.3)
      Information Macros (confluence.extra.information, Version: 0.1)
      Global Labels Sections (confluence.sections.labels, Version: 1.0)
      JIRA Macros (confluence.extra.jira, Version: 1.4)
      Layout Macros (confluence.extra.layout, Version: 0.1)
      Profile Tabs (confluence.sections.profile, Version: 1.0)
      Confluence Remote API (confluence.extra.confluencerpc, Version: 1.4)
      Admin Sections (confluence.sections.admin, Version: 1.0)
      Tabular Metadata (confluence.extra.masterdetail, Version: 1.0)
      Space Admin Sections (confluence.sections.space.admin, Version: 1.0)
      Space Pages Sections (confluence.sections.space.pages, Version: 1.0)
      Australian language pack (confluence.languages.en_AU, Version: 1.0)
      Advanced Macros (confluence.macros.advanced, Version: 1.3)
      Space Advanced Sections (confluence.sections.space.advanced, Version: 1.0)
      News Tabs (confluence.sections.news, Version: 1.0)
      IM Presence Macros (confluence.extra.impresence, Version: 0.1)
      Attachments Macros (confluence.extra.attachments, Version: 1.3)
      Edit Profile Sections (confluence.sections.profile.edit, Version: 1.0)
      Space Actions Sections (confluence.sections.space.actions, Version: 1.0)
      Task List Macros (confluence.extra.tasklist, Version: 1.3)
      Space Labels Sections (confluence.sections.space.labels, Version: 1.0)
      Attachment Extractors (confluence.extractors.attachments, Version: 1.4)
      Left Navigation Theme (com.atlassian.confluence.themes.leftnavigation, Version: 1.0)
      Dynamic Task List Macros (confluence.extra.dynamictasklist, Version: 1.3)
      Core Extractors (confluence.extractors.core, Version: 1.4)
      Compatibility Macros (confluence.macros.compatibility, Version: 1.3)
      Code Macro (confluence.macros.code, Version: 1.4)
      Space Item Tabs (confluence.sections.space, Version: 1.0)

      Request
      Information:
      URL: http://localhost:8080/500page.jsp

      • Scheme: http
      • Server: localhost
      • Port: 8080
      • URI: /500page.jsp
      • - Context Path:
      • - Servlet Path: /500page.jsp
      • - Path Info: null
      • - Query String: pageId=4365&type=TYPE_PDF

      Attributes:

      • javax.servlet.forward.request_uri : /pages/doexportpage.action
      • javax.servlet.forward.context_path :
      • javax.servlet.forward.servlet_path : /pages/doexportpage.action
      • javax.servlet.forward.path_info : /500page.jsp
      • javax.servlet.forward.query_string : pageId=4365&type=TYPE_PDF
      • javax.servlet.error.exception : java.lang.RuntimeException: Attachment data not found where expected
      • javax.servlet.error.message :
      • os_securityfilter_already_filtered : true
      • com.atlassian.johnson.filters.JohnsonFilter_already_filtered : true
      • _sitemesh_using_stream : false
      • javax.servlet.error.request_uri : /pages/doexportpage.action
      • javax.servlet.error.status_code : 500
      • _sitemesh_filterapplied : true
      • javax.servlet.error.servlet_name : action
      • webwork.valueStack : com.opensymphony.xwork.util.OgnlValueStack@1cb546b
      • loginfilter.already.filtered : true
      • atlassian.core.seraph.original.url : /pages/doexportpage.action?pageId=4365&type=TYPE_PDF
      • javax.servlet.jsp.jspException : java.lang.RuntimeException: Attachment data not found where expected
      • sessioninview.FILTERED : true
      • com.atlassian.core.filters.gzip.GzipFilter_already_filtered : true

      Parameters:

      • type = TYPE_PDF
      • pageId = 4365
        Confluence User:
      • anonymous

      Logging:
      0 log statements generated by this request.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              david.soul@atlassian.com David Soul [Atlassian]
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: