Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to see list of document's attachments #532

Closed
wiadev opened this issue Aug 7, 2017 · 3 comments
Closed

Unable to see list of document's attachments #532

wiadev opened this issue Aug 7, 2017 · 3 comments

Comments

@wiadev
Copy link

wiadev commented Aug 7, 2017

Type of issue

Bug

Steps to reproduce:

  1. Open window/123/2156482. This document has many attachments uploaded
  2. Click on dropdown menu button (in top-right corner of the page)
  3. Then click on tab with paperclip icon
  4. Loading indicator will appear, need to wait some 20-30 seconds and then it throws the error

You'll get following error:

Error: Error while loading model...
Server error
Error while loading model from ResultSet Name der DB-Tabelle: AD_AttachmentEntry Class: class org.compiere.model.X_AD_AttachmentEntry

screenshot at aug 07 20-52-29

@metasnw
Copy link
Member

metasnw commented Aug 7, 2017

found this in server log:

2017-08-07 20:49:14.451  WARN 29565 [ 173.245.219.129][    wiadev] --- [http-nio-8080-exec-6] d.m.ui.web.config.WebuiExceptionHandler  : Got REST exception from handler=public java.util.List<de.metas.ui.web.attachments.json.JSONAttachment> de.metas.ui.web.attachments.DocumentAttachmentsRestController.getAttachments(java.lang.String,java.lang.String)

org.adempiere.exceptions.DBException: org.postgresql.util.PSQLException: Ran out of memory retrieving query results.
        SQL: SELECT AD_AttachmentEntry_ID,AD_Attachment_ID,AD_Client_ID,AD_Org_ID,AD_Table_ID,BinaryData,ContentType,Created,CreatedBy,Description,FileName,IsActive,Record_ID,Updated,UpdatedBy
 FROM AD_AttachmentEntry
 WHERE ((AD_Attachment_ID = ?))
 ORDER BY AD_AttachmentEntry_ID ASC NULLS LAST
        SQL params: [1254810]
        at org.adempiere.ad.dao.impl.TypedSqlQuery.list(TypedSqlQuery.java:323)
        at org.compiere.model.IQuery.stream(IQuery.java:507)
        at de.metas.attachments.impl.AttachmentDAO.retrieveAttachmentEntries(AttachmentDAO.java:78)
        at de.metas.attachments.impl.AttachmentBL.getEntries(AttachmentBL.java:308)
        at de.metas.ui.web.attachments.DocumentAttachments.toJson(DocumentAttachments.java:107)
        at de.metas.ui.web.attachments.DocumentAttachmentsRestController.getAttachments(DocumentAttachmentsRestController.java:104)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
                                                                                                                                              16152,2-9     89%
  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.metas.ui.web.config.WebConfig$1.doFilter(WebConfig.java:82)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.metas.ui.web.config.ServletLoggingFilter.doFilter(ServletLoggingFilter.java:89)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at de.metas.ui.web.config.CORSFilter.doFilter(CORSFilter.java:85)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
a
  at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at de.metas.ui.web.config.CORSFilter.doFilter(CORSFilter.java:85)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
        at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.postgresql.util.PSQLException: Ran out of memory retrieving query results.
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2121)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:288)
        at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:430)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:356)
        at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:168)
        at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:116)
        at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1418)
        at org.adempiere.sql.impl.CPreparedStatementProxy.executeQuery(CPreparedStatementProxy.java:122)
        at org.adempiere.ad.dao.impl.TypedSqlQuery.createResultSet(TypedSqlQuery.java:1265)
        at org.adempiere.ad.dao.impl.TypedSqlQuery.list(TypedSqlQuery.java:307)
        ... 116 common frames omitted
Caused by: java.lang.OutOfMemoryError: Java heap space


@teosarca teosarca self-assigned this Aug 21, 2017
teosarca added a commit to metasfresh/metasfresh that referenced this issue Sep 4, 2017
even if the column is not a virtual one.
This will be useful for binary data columns which might be huge and we
don't want to load them each time

metasfresh/metasfresh-webui-api-legacy#532
teosarca added a commit to metasfresh/metasfresh that referenced this issue Sep 4, 2017
teosarca added a commit that referenced this issue Sep 4, 2017
@teosarca
Copy link
Member

teosarca commented Sep 5, 2017

note to IT:

  • regression on swing, webui and ZK: attach files, delete them etc
  • test this task: pls make sure, for a given document, you have A LOT of HUGE attachments.

@teosarca teosarca removed their assignment Sep 5, 2017
metas-ts added a commit to metasfresh/metasfresh that referenced this issue Sep 9, 2017
[#2398](#2398) Reverse
Correct of Disposal takes too long
[#2303](#2303) Auto
Product No when new
[#2224](#2224) Import
Subscriptions / Flatrate Terms
[#578](metasfresh/metasfresh-webui-api-legacy#578)
storage error on disposal
[#573](metasfresh/metasfresh-webui-api-legacy#573)
MoveToDirectWarehouse shall support multiple HUs
[#2342](#2342) Make
Material Disposal Lines and their Movements respect all the details from
the HUs
[#2389](#2389) edi
problem for customer returns
[#577](metasfresh/metasfresh-webui-api-legacy#577)
API for Edit Fields in Main Grid View
[#1178](metasfresh/metasfresh-webui-frontend-legacy#1178)
[ctrl]+u sometimes opens chrome sourceview instead of trigger main
quickaction
[#1179](metasfresh/metasfresh-webui-frontend-legacy#1179)
[ctrl]+enter does not save changes before
[#1164](metasfresh/metasfresh-webui-frontend-legacy#1164)
frontend: document cloning
[#563](metasfresh/metasfresh-webui-api-legacy#563)
Handling Unit Editor - remove hardcoded filter for active HUs
[#2343](#2343) Add code
coverage metrics to our builds
[#2358](#2358) translate
process quotation to sales order to en_US
[#567](metasfresh/metasfresh-webui-api-legacy#567)
Shipped HUs are not displayed correctly
[#2305](#2305) Create GL
Journal No. automatically when new
[#575](metasfresh/metasfresh-webui-api-legacy#575) HU
does not disappear after Correction Quick-action.
[#1161](metasfresh/metasfresh-webui-frontend-legacy#1161)
tab tries to update a readonly field
[#2367](#2367) error on
creating receipt
[#2349](#2349) Fix
AD_Column of C_BPartner.AD_OrgBP_ID
[#2354](#2354) LU has
HU_Status Active after picking
[#1172](metasfresh/metasfresh-webui-frontend-legacy#1172)
filtering is not working in picking
[#1159](metasfresh/metasfresh-webui-frontend-legacy#1159)
batch entry: scrollbar not moving when using keyboard
[#2303](#2302) Order
validation rule for packing instruction needs to look at DatePromised
[#572](metasfresh/metasfresh-webui-api-legacy#572)
qty doubled on vendor/customer return and destroyed HUs
[#532](metasfresh/metasfresh-webui-api-legacy#532)
Unable to see list of document's attachments
[#1165](metasfresh/metasfresh-webui-frontend-legacy#1165)
frontend cache for dropdown value not invalidated on lookupValuesStale
is true
[#2141](#2141) Year-End
P&L Process w/ multiple Organisations error

me-45
@metas-dh metas-dh self-assigned this Sep 12, 2017
@metas-dh
Copy link
Member

metas-dh commented Sep 19, 2017

Results of IT1
tested in mf15

  1. attach a high number of big files to a doc, check the attached files in the doc in WebUI:
  • Loading indicator: appeared for about 3 seconds only the first time, after that the files were displayed directly: OK
  • no error is thrown: OK
  1. Attach / delete files, in WebUI & Swing, check:
  • attaching & deleting works fine, OK
  • files are displayed properly when opened: OK
  • preview in Swing works fine: OK
  1. ZK: will be tested by @cristinamghita

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants