<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>RE: Javascript Consolidation? [SOLVED]</title>
  <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_recent_posts?p_l_id=" />
  <subtitle>RE: Javascript Consolidation? [SOLVED]</subtitle>
  <entry>
    <title>RE: Session Attributes missing between Event and Render Phases?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=23528096" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=23528096</id>
    <updated>2013-04-11T00:35:20Z</updated>
    <published>2013-04-11T00:35:20Z</published>
    <summary type="html">Mika,&lt;br /&gt;&lt;br /&gt;I will ahve another look at the spec but I don&amp;#039;t know that what I am looking for is in there. My understanding is that there is an APPLICATION (scope) session that can be used to share values between portlets -- like a global space -- and that there is a PORTLET (scope) session that is created on a portlet by portlet basis. Regardless of which scope I apply to the problem, the variable should be &amp;#034;saved&amp;#034; an available in when I get to my render handler. In fact, from what I know/see, this is the only way to pass varaibles between the event processor (handler) and the render handler. &lt;br /&gt;&lt;br /&gt;Is there another way to accomplish this that I am not aware of?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2013-04-11T00:35:20Z</dc:date>
  </entry>
  <entry>
    <title>RE: Session Attributes missing between Event and Render Phases?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=23512921" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=23512921</id>
    <updated>2013-04-10T14:20:16Z</updated>
    <published>2013-04-10T14:20:16Z</published>
    <summary type="html">&lt;div class="quote-title"&gt;Mika Koivisto:&lt;/div&gt;&lt;div class="quote"&gt;&lt;div class="quote-content"&gt;If the portlets are in the same war file you can use application scope to get it working. If they are in different wars you need to find a different approach as that&amp;#039;s not going to work.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I think maybe I explained it wrong, or you misunderstood. The porlets are in individual WARs, but the methods that are acting strange are in the SAME portlet. So the flow..&lt;br /&gt;&lt;br /&gt;&lt;ol style="list-style: decimal inside;"&gt;&lt;li&gt;Portlet A fires Event A&lt;/li&gt;&lt;li&gt;Portlet B captures Event A&lt;/li&gt;&lt;li&gt;Portlet B handler runs&lt;/li&gt;&lt;li&gt;Portlet B pushes value to its session attributes&lt;/li&gt;&lt;li&gt;Portlet B render handler runs&lt;/li&gt;&lt;li&gt;Portlet B tries to retrieve value from session attributes added by handler&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;.. and that is where the issue arises. For some reason, within the same portlet, within the same (portlet) session the values are not there. I think what you thought I was trying to do is put something in the session with PortletB and have it accessed by PortletA. That is an alternative that I was going to try, but now I am less focused on solving the programming problem and fixated on what is happening with what I am trying to do now &lt;img alt="emoticon" src="http://www.liferay.comhttp://cdn.www.liferay.com/osb-www-theme/images/emoticons/happy.gif" &gt;&lt;br /&gt;&lt;br /&gt;Does that list explain it better?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2013-04-10T14:20:16Z</dc:date>
  </entry>
  <entry>
    <title>Session Attributes missing between Event and Render Phases?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=23487839" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=23487839</id>
    <updated>2013-04-09T20:34:53Z</updated>
    <published>2013-04-09T20:34:53Z</published>
    <summary type="html">Hey Guys,&lt;br /&gt;&lt;br /&gt;I&amp;#039;m all out of ideas here so I amn hoping my issue is one someone else has seen before. Liferay portal 6.1 CE, Linux, Tomcat 7. I have two portlets ... a search portlet and a search results portlet. The user performs a search action. In the action Handler I fire on a SearchResultsEvent IPC event. The search results portlet listens for the event and when found, runs the event handler. This is all working. &lt;br /&gt;&lt;br /&gt;In the event handler, I pull out a &amp;#034;Records&amp;#034; object and I push it into the session with the default PORTLET_SCOPE. I do this, like so.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;// code to get the results out of the event request here ...&lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;eventRequest.getPortletSession().setAttribute(&amp;#034;records&amp;#034;, results.getRecords());&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In the render phase for the portlet I try to put the value from the session as a render attribute like so --&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;renderRequest.setAttribute(&amp;#034;records&amp;#034;, renderRequest.getPortletSession().getAttribute(&amp;#034;records&amp;#034;));&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For some reason though null is always being passed through to the JSP. I debugged the code and found that the value IS going into the session during the event handler, but it is NOT there anymore in the render handler. The sessions both have the same ID so I&amp;#039;m not sure what is wrong. &lt;br /&gt;&lt;br /&gt;Any chance that someone else has come across this before? knows how to get passed it? has a suggestion for what else I can try?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2013-04-09T20:34:53Z</dc:date>
  </entry>
  <entry>
    <title>RE: c3p0 Connection Pool -- unreturned connections?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=21299671" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=21299671</id>
    <updated>2013-02-07T00:09:15Z</updated>
    <published>2013-02-07T00:09:15Z</published>
    <summary type="html">Hi Igor,&lt;br /&gt;&lt;br /&gt;To be honest I never fully solved the issue. I managed to get it to the point where the server only ran out of resources once a month which seemed a suitable solution for my client (at the time). In the end I simply mucked with the pool settings as well as the hibernate and mysql settings until the results seemed reasonable. I think I also set some pretty aggressive garbage collection settings on the JVM. &lt;br /&gt;&lt;br /&gt;I did try a new install which didn&amp;#039;t seem to have an issue until I moved the code over. That seemed to me to be an indication of a problem with the custom code (written by someone else for the record! &lt;img alt="emoticon" src="http://www.liferay.comhttp://cdn.www.liferay.com/osb-www-theme/images/emoticons/happy.gif" &gt; ) rather than a problem with liferay (core). &lt;br /&gt;&lt;br /&gt;Hope that helps.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2013-02-07T00:09:15Z</dc:date>
  </entry>
  <entry>
    <title>[SOLVED]RE: SearchContainer woes -- can't render certain columns?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=17467258" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=17467258</id>
    <updated>2012-10-26T01:36:30Z</updated>
    <published>2012-10-26T01:36:30Z</published>
    <summary type="html">In the end this (thanks to Ray for this one) did it for me --&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&amp;lt;liferay-ui:search-container-column-text name=&amp;#034;Parents&amp;#034;&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;%= solrDocument.getFieldValue(&amp;#034;parents&amp;#034;) %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;4&lt;/span&gt;&amp;lt;/liferay-ui:search-container-column-text&amp;gt; &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;.. which I swear I had tried. Interestingly though, if I use the same code, but place .toString() on the end it fails. Anyway, that&amp;#039;s what solved it for me.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-10-26T01:36:30Z</dc:date>
  </entry>
  <entry>
    <title>SearchContainer woes -- can't render certain columns?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=17458666" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=17458666</id>
    <updated>2012-10-25T17:02:16Z</updated>
    <published>2012-10-25T16:56:40Z</published>
    <summary type="html">Help! I&amp;#039;m getting so frustrated with Liferay right now that I am contemplating switching over to the red side (Oracle). &lt;br /&gt;&lt;br /&gt;Summary.&lt;br /&gt;1. I query SOLR using the solrj library  (works).&lt;br /&gt;&lt;br /&gt;2. The result (SolrDocumentList) is added to the renderRequest as an attribute to get it back to the JSP (works).&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;renderRequest.setAttribute(&amp;#034;searchResults&amp;#034;, resultsList);&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;3. In the JSP I retrieve the list (works).&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&amp;nbsp; &amp;nbsp; int recordCount = 0;&lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; SolrDocumentList searchResults = (SolrDocumentList)renderRequest.getAttribute(&amp;#034;searchResults&amp;#034;);&lt;br /&gt;&lt;span class="code-lines"&gt;4&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; if ( searchResults != null )&lt;br /&gt;&lt;span class="code-lines"&gt;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; recordCount = searchResults.size();&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;4. I bind the variable used to store this (searchResults) to the search-container-results (like so)&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&amp;lt;liferay-ui:search-container-results results=&amp;#034;&amp;lt;%= searchResults %&amp;gt;&amp;#034; total=&amp;#034;&amp;lt;%= recordCount %&amp;gt;&amp;#034; &amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;5. My schema in SOLR has three fields I am concerned with --&lt;br /&gt;name (type=&amp;#034;text_general&amp;#034; multiValue=&amp;#034;false&amp;#034;)&lt;br /&gt;parents (type=&amp;#034;text_general&amp;#034; multiValue=&amp;#034;true&amp;#034;)&lt;br /&gt;children (type=&amp;#034;text_general&amp;#034; multiValue=&amp;#034;true&amp;#034;)&lt;br /&gt;&lt;br /&gt;Outputting the name column like so (works).&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&amp;lt;liferay-ui:search-container-column-text &lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; name=&amp;#034;skill&amp;#034; &lt;br /&gt;&lt;span class="code-lines"&gt;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; value=&amp;#039;&amp;lt;%= solrDocument.getFieldValue(&amp;#034;name&amp;#034;).toString() %&amp;gt;&amp;#039; &lt;br /&gt;&lt;span class="code-lines"&gt;5&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;6. When I try eiher the children or the parents, I get a stack trace --&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&amp;lt;liferay-ui:search-container-column-text &lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; name=&amp;#034;skill&amp;#034; &lt;br /&gt;&lt;span class="code-lines"&gt;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; value=&amp;#039;&amp;lt;%= solrDocument.getFieldValue(&amp;#034;parents&amp;#034;).toString() %&amp;gt;&amp;#039; &lt;br /&gt;&lt;span class="code-lines"&gt;5&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;.. the stack trace ultimately giving a null pointer exception. I checked the portal source and the columns want Strings... and the toString() generates one. The only difference really is that for the name its a single value and when I toString() the list for parents I get &amp;#034;[name, name. name]&amp;#034;. I even went as far as to create a String variable, set it using THE SAME CODE, and then adding teh variable to the column, which works?!&lt;br /&gt;&lt;br /&gt;I don&amp;#039;t understand what the issue is. Any help would be appreciated.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-10-25T16:56:40Z</dc:date>
  </entry>
  <entry>
    <title>RE: Ho to use feature "display page"</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=16914610" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=16914610</id>
    <updated>2012-10-04T21:22:36Z</updated>
    <published>2012-10-04T21:22:36Z</published>
    <summary type="html">I&amp;#039;m having the same issue -- did you figure out how this works by any chance? Documentation is not really helping me much.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-10-04T21:22:36Z</dc:date>
  </entry>
  <entry>
    <title>RE: Setting the HTTP Response in a liferay service</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=16389863" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=16389863</id>
    <updated>2012-09-13T19:27:34Z</updated>
    <published>2012-09-13T19:27:34Z</published>
    <summary type="html">Hey Tim,&lt;br /&gt;&lt;br /&gt;It&amp;#039;s been a while since I&amp;#039;ve had to do anything with services but if memory serves me, you should be able to throw an exception that get returned as a SOAP Fault to the caller. I am pretty sure that Faults, although representing errors, do use a HTTP Status code of 200 OK.  Have you tried that avenue yet?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-09-13T19:27:34Z</dc:date>
  </entry>
  <entry>
    <title>RE: Liferay sucks!!</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=16189396" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=16189396</id>
    <updated>2012-09-06T20:28:37Z</updated>
    <published>2012-09-06T20:28:37Z</published>
    <summary type="html">I once saw an interview with Eminem after one of his album releases. The interviewer asked him how he felt about a crap ton of parents saying that he should be jailed for his lyrics and how offensive they felt they were etc. I thought his answer was awesome. He said --&lt;br /&gt;&lt;br /&gt;&amp;#034;You don&amp;#039;t like what I have to say? Don&amp;#039;t listen. That&amp;#039;s your choice.&amp;#034;&lt;br /&gt;&lt;br /&gt;... I think that same philosophy can be carried on here. You don&amp;#039;t like Liferay, great, work with something else. Personally, I&amp;#039;d like to see the portal framework that Bill has built that is better. &lt;br /&gt;&lt;br /&gt;Unfortuantely, in my career I have nearly always inheritted someone elses sh*t. From what I have seen, it&amp;#039;s rarely the product that is crap but rather some sad developers interpretation of it that makes it difficult to use and frustrating.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-09-06T20:28:37Z</dc:date>
  </entry>
  <entry>
    <title>RE: Creating ExtJS portal(Sencha) in Liferay</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=15969828" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=15969828</id>
    <updated>2012-08-30T00:34:28Z</updated>
    <published>2012-08-30T00:34:28Z</published>
    <summary type="html">The first thing you should consider changing is adding additional entried to the liferay-portlet.xml file such that the other JS files you listed are referenced. I would also chagne teh app.html to be a JSP page and remove the html, head amd body tags. These are added for you by Liferay. The best way to get this to work I think would the to do the following --&lt;br /&gt;&lt;br /&gt;1. Install the Liferay plugins for eclipse&lt;br /&gt;2. Create a new Liferay project (portlet project)&lt;br /&gt;3. Add your Sencha files (*.js and *.css) to the corresponding folders&lt;br /&gt;4. Update the liferay-portlet.xml to reference the additional css and js files&lt;br /&gt;5. Deploy&lt;br /&gt;&lt;br /&gt;and see where that takes you. Another thing to consider would be merging the JS files together into one JS file for the portlet or alternatively moving them into the theme so that they can be compressed and minified. I worked with ExtJS on a project once and one of the core issues we had to solve around performance was the bloated nature of these frameworks that want you to place every piece of code into it&amp;#039;s on JS file. At one point, for a single page with 8 portlets we had over 118 JS requests! Page load time went from 37 seconds to 8 seconds once I had that number down to 42.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-08-30T00:34:28Z</dc:date>
  </entry>
  <entry>
    <title>RE: Parameter handling with Action/Resource handler</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=15740140" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=15740140</id>
    <updated>2012-08-21T03:19:55Z</updated>
    <published>2012-08-21T03:19:55Z</published>
    <summary type="html">As far as I know, resource requests don&amp;#039;t receive parameters (whcih is why what you tried is not working). I had to do this once before on a different platform and if I remember correctly, I had to append the paramteres to the resource URL in order to have them available in the resource handler.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-08-21T03:19:55Z</dc:date>
  </entry>
  <entry>
    <title>RE: Obtain external client IP from web service</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=14542446" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=14542446</id>
    <updated>2012-06-23T01:30:30Z</updated>
    <published>2012-06-23T01:30:30Z</published>
    <summary type="html">The ServiceContext object has a getRemoteAddr() method on it as well. Can you use that one?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-06-23T01:30:30Z</dc:date>
  </entry>
  <entry>
    <title>5.2.3 API Help</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=14365637" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=14365637</id>
    <updated>2012-06-12T15:38:53Z</updated>
    <published>2012-06-12T15:38:53Z</published>
    <summary type="html">Hi,&lt;br /&gt;&lt;br /&gt;I realize this is the lamest post on the forum right now but i need more eyes. I&amp;#039;m used to working with Liferay 6+ where the User model object has methods on it (as part of the API) to retrieve Addresses and Phone number collections assigned to them. I have zero experience with 5.2.3 but know that the methodology is sound. So, Here is what I am doing -&lt;br /&gt;&lt;br /&gt;1. Retrieve my list of organization ids (that I am trying to report on)&lt;br /&gt;2. For each orgnization, get the list of users assigned to it&lt;br /&gt;3. For each user in the list, append their details to a StringBuffer for the CSV report&lt;br /&gt;&lt;br /&gt;... now for the raw fields like, first, last, email, its easy. But I can&amp;#039;t see in the 5.2.3 API how I can retrieve their address(es) and phone number(s). Can someone point out the obvious to me?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-06-12T15:38:53Z</dc:date>
  </entry>
  <entry>
    <title>c3p0 Connection Pool -- unreturned connections?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=14077859" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=14077859</id>
    <updated>2012-05-23T14:38:13Z</updated>
    <published>2012-05-23T14:38:13Z</published>
    <summary type="html">Hi,&lt;br /&gt;&lt;br /&gt;I have a real puzzle I am trying to figure out right now.A quick summary of what I think is going wrong and how I am patching the holes in a sinking ship.&lt;br /&gt;&lt;br /&gt;1. 2 node cluster -- 10GB RAM and 500 DB connections per node&lt;br /&gt;2. 10 - 15 minute window until all resources are exhausted and the server hangs&lt;br /&gt;3. I enabled DEBUG level logging for com.mchange and can see the pool steadily increasing&lt;br /&gt;4. I enable several JDBC loggers at DEBUG and can see a global prepared statement count steadily increasing&lt;br /&gt;&lt;br /&gt;I suspect that the two coincided and that the prepares statement was not returning the connection to the pool. I turned on 3 additional c3p0 settings in the portal-ext file.&lt;br /&gt;&lt;br /&gt;a. jdbc.default.testConnectionOnCheckout=true&lt;br /&gt;b. jdbc.default.unreturnedConnectionTimeout=300    #5 minutes&lt;br /&gt;c. jdbc.default.debugUnreturnedConnectionStackTraces=true&lt;br /&gt;&lt;br /&gt;I was hoping that c. would lead me to the source of the leak. Unfortunately, I don&amp;#039;t see the stacktraces being pushed out. On top of that I am occasionally having a problem saving a simple WebForm portlet&amp;#039;s information. The stack trace that coincides with this error is --&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;12:33:27,794 ERROR [JDBCExceptionReporter:101] No operations allowed after connection closed.&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;12:33:27,799 ERROR [WebFormPortlet:331] The web form data could not be saved to the database&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;com.liferay.portal.SystemException: com.liferay.portal.kernel.dao.orm.ORMException: could not load an entity: [com.liferay.counter.model.Counter#com.liferay.counter.model.Counter]&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.service.persistence.impl.BasePersistenceImpl.processException(BasePersistenceImpl.java:91)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.counter.service.persistence.CounterPersistence.increment(CounterPersistence.java:162)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.counter.service.persistence.CounterPersistence.increment(CounterPersistence.java:121)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.counter.service.persistence.CounterPersistence.increment(CounterPersistence.java:117)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.counter.service.persistence.CounterUtil.increment(CounterUtil.java:42)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;10&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.counter.service.impl.CounterLocalServiceImpl.increment(CounterLocalServiceImpl.java:44)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;11&lt;/span&gt;&amp;nbsp; &amp;nbsp; at sun.reflect.GeneratedMethodAccessor596.invoke(Unknown Source)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;12&lt;/span&gt;&amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;13&lt;/span&gt;&amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:592)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;14&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;15&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;16&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;17&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;18&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;19&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;20&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;21&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp; &amp;nbsp; at $Proxy82.increment(Unknown Source)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;23&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.expando.service.impl.ExpandoValueLocalServiceImpl.addValue(ExpandoValueLocalServiceImpl.java:66)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.expando.service.impl.ExpandoValueLocalServiceImpl.addValue(ExpandoValueLocalServiceImpl.java:507)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;25&lt;/span&gt;&amp;nbsp; &amp;nbsp; at sun.reflect.GeneratedMethodAccessor597.invoke(Unknown Source)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;27&lt;/span&gt;&amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:592)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;28&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;30&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;31&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;33&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;35&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;36&lt;/span&gt;&amp;nbsp; &amp;nbsp; at $Proxy98.addValue(Unknown Source)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;37&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.expando.service.ExpandoValueLocalServiceUtil.addValue(ExpandoValueLocalServiceUtil.java:259)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;38&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.webform.portlet.WebFormPortlet.saveDatabase(WebFormPortlet.java:323)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;39&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.webform.portlet.WebFormPortlet.saveData(WebFormPortlet.java:183)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;40&lt;/span&gt;&amp;nbsp; &amp;nbsp; at sun.reflect.GeneratedMethodAccessor730.invoke(Unknown Source)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;41&lt;/span&gt;&amp;nbsp; &amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:592)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;43&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:111)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:69)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;45&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.sun.portal.portletcontainer.appengine.filter.FilterChainImpl.doFilter(FilterChainImpl.java:98)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;46&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:57)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;47&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:100)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;48&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;50&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;51&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;53&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:618)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:664)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;56&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:359)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;57&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:604)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;58&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:428)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:195)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;60&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;62&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:157)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;63&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;64&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;65&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;66&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:608)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;67&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:846)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;68&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;69&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;70&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;72&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;74&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;75&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:143)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;76&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;77&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;78&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;79&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;80&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:142)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;81&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;82&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;83&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;85&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;87&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;88&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;89&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:140)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;90&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;91&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;92&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;93&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;94&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:282)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;95&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;96&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;98&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;99&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)&lt;br /&gt;&lt;span class="code-lines"&gt;100&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;101&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;102&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;103&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:425)&lt;br /&gt;&lt;span class="code-lines"&gt;104&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)&lt;br /&gt;&lt;span class="code-lines"&gt;105&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;106&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;107&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;108&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:191)&lt;br /&gt;&lt;span class="code-lines"&gt;109&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;110&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;111&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;112&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.servlet.filters.threadlocalcache.ThreadLocalCacheFilter.processFilter(ThreadLocalCacheFilter.java:55)&lt;br /&gt;&lt;span class="code-lines"&gt;113&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)&lt;br /&gt;&lt;span class="code-lines"&gt;114&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;115&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;116&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)&lt;br /&gt;&lt;span class="code-lines"&gt;117&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)&lt;br /&gt;&lt;span class="code-lines"&gt;118&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;119&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;120&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)&lt;br /&gt;&lt;span class="code-lines"&gt;121&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;&lt;span class="code-lines"&gt;122&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class="code-lines"&gt;123&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)&lt;br /&gt;&lt;span class="code-lines"&gt;124&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)&lt;br /&gt;&lt;span class="code-lines"&gt;125&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)&lt;br /&gt;&lt;span class="code-lines"&gt;126&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)&lt;br /&gt;&lt;span class="code-lines"&gt;127&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)&lt;br /&gt;&lt;span class="code-lines"&gt;128&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)&lt;br /&gt;&lt;span class="code-lines"&gt;129&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)&lt;br /&gt;&lt;span class="code-lines"&gt;130&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)&lt;br /&gt;&lt;span class="code-lines"&gt;131&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)&lt;br /&gt;&lt;span class="code-lines"&gt;132&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)&lt;br /&gt;&lt;span class="code-lines"&gt;133&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)&lt;br /&gt;&lt;span class="code-lines"&gt;134&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)&lt;br /&gt;&lt;span class="code-lines"&gt;135&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)&lt;br /&gt;&lt;span class="code-lines"&gt;136&lt;/span&gt;&amp;nbsp; &amp;nbsp; at java.lang.Thread.run(Thread.java:595)&lt;br /&gt;&lt;span class="code-lines"&gt;137&lt;/span&gt;Caused by: com.liferay.portal.kernel.dao.orm.ORMException: could not load an entity: [com.liferay.counter.model.Counter#com.liferay.counter.model.Counter]&lt;br /&gt;&lt;span class="code-lines"&gt;138&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:41)&lt;br /&gt;&lt;span class="code-lines"&gt;139&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.dao.orm.hibernate.SessionImpl.get(SessionImpl.java:131)&lt;br /&gt;&lt;span class="code-lines"&gt;140&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.counter.service.persistence.CounterPersistence.increment(CounterPersistence.java:145)&lt;br /&gt;&lt;span class="code-lines"&gt;141&lt;/span&gt;&amp;nbsp; &amp;nbsp; ... 130 more&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I&amp;#039;m not sure but i suspect that for some reason the unreturned connections are being used in this scenario. When I first boot I don&amp;#039;t see the issue but eventually this starts to show up and the &amp;#034;Portet is unavailable message&amp;#034; is displayed to me after submitting the form.&lt;br /&gt;&lt;br /&gt;I&amp;#039;m beating my brains trying to figure this problem out. Can anyone help?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-05-23T14:38:13Z</dc:date>
  </entry>
  <entry>
    <title>RE: CSS Compression</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13856215" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13856215</id>
    <updated>2012-05-09T16:13:11Z</updated>
    <published>2012-05-09T16:13:11Z</published>
    <summary type="html">I&amp;#039;ve solved my own problem. In the end, it was the morons that migrated the portlets for us and their moronic approach to doing it that was the problem. They had not included any style sheets in the liferay-portlet.xml file and instead were doing the classic &amp;lt;link type=&amp;#034;...&amp;#034;/&amp;gt; in the JSP pages. &lt;br /&gt;&lt;br /&gt;Fail.&lt;br /&gt;&lt;br /&gt;How I managed to get it to work.&lt;br /&gt;&lt;br /&gt;1. Create a file in the /my-portlet/docroot/css location called main.jsp (you can call it whatever you want -- that appears to be LR standard)&lt;br /&gt;&lt;br /&gt;2.  Copy ROOT/html/portlets/css_init.jsp to you css folder in your project. (I tried referencing it but got a 500 error at run time)&lt;br /&gt;&lt;br /&gt;3. First line in the main.jsp should reference the css_init.jsp file using the &amp;lt;%@ include file=&amp;#034;... %&amp;gt;&lt;br /&gt;&lt;br /&gt;4. Include references to all other style sheets using the same &amp;lt;%@ include file=&amp;#034;...&amp;#034; %&amp;gt; approach. The order you specify them is the order they will load so make sure your highest priority sheet is last in the list.&lt;br /&gt;&lt;br /&gt;5. In the liferay-portlet.xml add a reference to /css/main.jsp in the &amp;lt;header-portlet-css /&amp;gt; section.&lt;br /&gt;&lt;br /&gt;6. Set theme.fast.load.css=true in the portal-ext.properties file&lt;br /&gt;&lt;br /&gt;7. Restart your server clearing all cache (server and browser). &lt;br /&gt;&lt;br /&gt;Using firebug you should see a main.jsp CSS item on the NET tab. All your styles shouldstill work but you get all the data using one call instead of x.&lt;br /&gt;&lt;br /&gt;Hope this helps save someone else some pain.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-05-09T16:13:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: CSS Compression</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13839108" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13839108</id>
    <updated>2012-05-08T17:30:26Z</updated>
    <published>2012-05-08T17:30:26Z</published>
    <summary type="html">bump. &lt;br /&gt;&lt;br /&gt;Anyone out there?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-05-08T17:30:26Z</dc:date>
  </entry>
  <entry>
    <title>RE: Can someone give me an example portlet with a config page?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13838286" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13838286</id>
    <updated>2012-05-08T16:01:41Z</updated>
    <published>2012-05-08T16:01:41Z</published>
    <summary type="html">I&amp;#039;m using the IDE and we&amp;#039;re on 6.0 SP1 EE. You just need to configure multiple runtime environments and sdks in eclipse.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-05-08T16:01:41Z</dc:date>
  </entry>
  <entry>
    <title>CSS Compression</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13824536" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13824536</id>
    <updated>2012-05-08T03:41:49Z</updated>
    <published>2012-05-08T03:41:49Z</published>
    <summary type="html">Hi, &lt;br /&gt;&lt;br /&gt;My question is actually realted to both CSS compression and JS compression. I&amp;#039;ve been doing some digging and have tried a few things out but so far no luck. Here is what I have.&lt;br /&gt;&lt;br /&gt;I have a single portlet project with multiple portlet definitions. The structure is something like this (and cannot really be altered -- I inherrited this)&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;2&lt;/span&gt;MyPortlet/docroot &lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; custom-navigation&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; view.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; custom-breadcrumbs&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; view.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; edit.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; help.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp; custom-bookmarks&lt;br /&gt;&lt;span class="code-lines"&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;view.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;11&lt;/span&gt;&amp;nbsp; &amp;nbsp; css&lt;br /&gt;&lt;span class="code-lines"&gt;12&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; common&lt;br /&gt;&lt;span class="code-lines"&gt;13&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;common.css.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;14&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; custom-navigation&lt;br /&gt;&lt;span class="code-lines"&gt;15&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;custom-nav-a.css.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;16&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;custom-nav-b.css&lt;br /&gt;&lt;span class="code-lines"&gt;17&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; custom-breadcrumbs&lt;br /&gt;&lt;span class="code-lines"&gt;18&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;a.css.jsp&lt;br /&gt;&lt;span class="code-lines"&gt;19&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;b.css&lt;br /&gt;&lt;span class="code-lines"&gt;20&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;c.css&lt;br /&gt;&lt;span class="code-lines"&gt;21&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; custom-bookmarks&lt;br /&gt;&lt;span class="code-lines"&gt;22&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;styles.css.jsp&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I have added in the /MyProject/docroot/css a file called main.jsp. In it I have done placed the following --&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;2&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;/html/portlet/css_init.jsp&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;3&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;common/common.css&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;4&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;custom-navigation/custom-nav-a.css.jsp&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;5&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;custom-navigation/custom-nav-b.css&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;6&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;custom-breadcrumbs/a.css.jsp&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;7&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;custom-breadcrumbs/b.css&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;8&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;custom-breadcrumbs/c.css&amp;#034; %&amp;gt;&lt;br /&gt;&lt;span class="code-lines"&gt;&amp;nbsp;9&lt;/span&gt;&amp;lt;%@ include file=&amp;#034;custom-bookmarks/styles.css.jsp&amp;#034; %&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;and then in my portal-ext.properties I have added the required --&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;theme.fast.load.css=true&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I clear the server cache and the browser cache. Fire everything up (firefox) and navigate to a page that has all three portlets on it. Using Firebug and selecting the NET tab with a CSS filter I am able to see the main.jsp line, but it is slightly grey as compared to all the other lines which are basically the individual CSS files listed above. I think that this means that it is not working right?&lt;br /&gt;&lt;br /&gt;Can someone tell me what I am doing wrong?</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-05-08T03:41:49Z</dc:date>
  </entry>
  <entry>
    <title>RE: Can someone give me an example portlet with a config page?</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13129604" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13129604</id>
    <updated>2012-03-23T00:52:13Z</updated>
    <published>2012-03-23T00:52:13Z</published>
    <summary type="html">Hey Bobby,&lt;br /&gt;&lt;br /&gt;If you&amp;#039;re not already doing so, I would suggest downloading the Liferay IDE or installing the plugins for eclipse. They make it much easier to get the structure of a project in place. Once you have that up and running you should check out the SAMPLE porlets that Liferay provides. They&amp;#039;re available in the SVN. They cover a lot of different topics. If you&amp;#039;ve never worked with portlets before then be prepared to commit some time -- it&amp;#039;s not a concept you&amp;#039;re going to pick up in a couple of hours and be an expert at.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-03-23T00:52:13Z</dc:date>
  </entry>
  <entry>
    <title>RE: Javascript Consolidation? [SOLVED]</title>
    <link rel="alternate" href="http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13109156" />
    <author>
      <name>Andew Jardine</name>
    </author>
    <id>http://www.liferay.com/hu/c/message_boards/find_message?p_l_id=&amp;messageId=13109156</id>
    <updated>2012-03-22T01:01:41Z</updated>
    <published>2012-03-22T01:01:41Z</published>
    <summary type="html">Hey David,&lt;br /&gt;&lt;br /&gt;I wanted to post my final results (incase anyone else stumbles upon the same issue) and to say thanks again for your help.&lt;br /&gt;&lt;br /&gt;In the end I took your advice. As a matter of interest I did try to use a JSP hook before the Ext plugin. At first it looked promising, but I quickly realized that it was more for substitution than addition. Since I was trying to ADD file to the ROOT application, the Ext plugin was my only real option. &lt;br /&gt;&lt;br /&gt;Here is what I did.&lt;br /&gt;&lt;br /&gt;1. Using the Eclipse IDE I create a EXT plugin project. &lt;br /&gt;2. Under the resulting project I expanded docroot/WEB-INF/ext-web/docroot&lt;br /&gt;3. I create the structure /html/js to mirror what is in the ROOT&lt;br /&gt;4. I then created a sub-folder (a bunch actually but to keep it simple...) called extjs&lt;br /&gt;5. In there I placed the core ExtJS files&lt;br /&gt;6. I then removed the JS files them from my portlet.&lt;br /&gt;7. I deployed the Ext project.&lt;br /&gt;8. After the deployment I stoped the server.&lt;br /&gt;9. I then updated the portal-ext.properties file to include&lt;br /&gt;    javascript.fast.load=true&lt;br /&gt;    javascript.everything.files=extjs/file1.js,extjs/file2.js  &lt;br /&gt;&lt;br /&gt;**NOTE: one of the bundle paths specified in portal.properties is /html/js so you don&amp;#039;t need to specify that part.&lt;br /&gt;&lt;br /&gt;10. I restarted the server.&lt;br /&gt;11. Redeployed my portlet (JS files removed)&lt;br /&gt;12. Login to the portal.&lt;br /&gt;13. Navigate to the page with my portlet.&lt;br /&gt;14. Used firebug to verify that the JS files were not loaded (explicitly)&lt;br /&gt;15. Test the portlet and all JS functionality worked.&lt;br /&gt;&lt;br /&gt;The only thing to note, since I was new to EXT Plugins is the pain to make changes to it. For anyone else who comes across this, the IDE offers a sweet option. If you right click on the project there is a Liferay option. Under there you will find the option to &amp;#034;clean app server..&amp;#034; (or something). This will use the bundle zip you&amp;#039;ve specified and basically replace the existing runtime with the bundled one. Be forewarned you will lose all your deployments if you use the OOTB one you download. I zipped up my pret EXT plugin version and specified that as my bundle and then continued to add the JS files one at a time to make sure no conflicts came up.&lt;br /&gt;&lt;br /&gt;Thanks again.</summary>
    <dc:creator>Andew Jardine</dc:creator>
    <dc:date>2012-03-22T01:01:41Z</dc:date>
  </entry>
</feed>

