juliocamarero/liferay-portal — pull request #2850 by peterborkuti (2014-05-15 09:13:40+00:00)
Title: [TECHNICAL REQUEST] LPS-46756 Avoid infinite Loop in Asset Publsiher's manual configuration

Twisted condition checking to prevent infinite loop on non visible assetEntry as SearchContainerRowTag.doAfterBody() is not invoked in case assetEntry is not visible or null, so the processed Document will remain the same, so we cannot step further just run infinite loops.

Hi @juliocamarero, @vilmospapp

I rebased and retested this LPS.

I put here Vilmos's original message:

----------------
I've got this issue as it was marked as related to operations, but it turned out that it's related to AssetPublisher's modification with SearchContainer pattern modification. The problem is that during the SearchContainerRow processing, we call continue; when the processed asset is not visible, hence we will not call the doAfterBody() method of SearchContainerTag which is responible to increment the index for processing the results in SearchContainer, hence we will process the same entry again, again and again. Though the compiled js will print new lines into the response infinitely, so StringBundler will allocate more and more memory what ends up in a OutOfMemoryException: java heap space message in the logs.

I twisted condition checking to prevent the infinite loop on non visible assetEntry.
--------------

Please, review Vilmos's changes.

Thank you in advance

Péter