Grails 2.3.0 view rendering issue - grails

I am having a strange issue with my Grails application. It seems that it's caching the views incorrectly. What is happening, is that the first time I hit a path with a specific action (let's say /controller/index) it will load the correct index view for that controller. Now, when I go to /anotherController/index, the correct controller is called, but it still tried to serve the old index gsp, resulting in obvious *NotFound exceptions.
This happens with all views. The first one that get's loaded gets displayed for all subsequent actions with the same name. I.e. the first show that get's called will be correct, but then any other show for another domain object tries to use the old one.
Any suggestions? My code is pretty much the stock standard generate-all versions at the moment.
I should also say, running in dev mode works 100%. Prod war in tomcat 7.0.42 is giving the issues.

I had a weird issue like this a few weeks ago, but it was caching some information from the database and was not returning the correct results.
Here is what I did:
Stopped Tomcat
Deleted all the files in Tomcat's Temp directory
Restarted Tomcat
After that, it worked fine.
Let me know if this helps.

Related

Images disappear on refresh in heroku-hosted rails application

Let me say first that I'm quite new and inexperienced with rails. Today I tried to update an image in a rails app hosted on Heroku. Anyway, this is the simple flow I followed as I did other times before:
Add updated image to the image folder
Precompile the assets rake assets:precompile
Add and commit all changes
Push to heroku
Until this point all seems fine: I open Chrome to check my app from my domain and it's all there as expected.
The problem is that if I refresh the page all the images disappear (like they have never been loaded). This does not happen locally.
If I do a ctrl+f5 it all comes back nicely, but I lose everything again on simple refresh.. and so on.
Has anyone experienced something similar? I understand this might be hard to answer as there is not much code to show. Let me know if I can give more details.
On a final note, it seems that all works normally on a friends machine (that is, refresh doesn't give this problem). I'm thinking something might be wrong with my Chrome settings here? I don't remember having changed anything recently though.
This is very weird and quite annoying some help/insights would be great.
UPDATE: This seems indeed really to happen locally on my machine at work. I checked from another couple of computers at home and the app is displayed fine (without any refreshing problem).
Did you check if the cookie is disabled by your browser for the heroku website in particular?
I have just tested this issue with an image based website (https://unsplash.com/). When the cookie is disabled for that website, pressing F5 clears all the images, while pressing Ctrl-F5 brings those lost resources back as like as your case.
Enabling cookie resolves the issue in my case.

Grails 2.2.3 - lots of resources in project root makes the app hang forever

I have this Grails 2.2.3 (still...) application. It's a normal app using GORM, and SpringSecurity, nothing unusual.
The only unusual thing is when the app goes in production, the webapps/ROOT folder (where the app lives) is populated by a lot of other folders in the root of it. These folders do not contain stuff that is needed by Grails, but for reasons I find shameful ^_^; , they have to be there. I'm talking about a huge amount of directories with various depths.
The big problem here is at Tomcat restart, the whole process hangs with a beautiful:
INFO: Initializing Spring root WebApplicationContext
and takes like 40 minutes to proceed further.
Using JVisual, we noticed the reason was a huge amount of directory listing and file reads.
We never reproduced this behavior locally, until we noticed this thing. We recreated an environment full of directories and violĂ , same behavior.
Now:
anyone can confirm my guess is right
any idea on how I can "disable" this search on uninteresting paths (or tell which are interesting)
Ok, I can confirm this is actually happening. When Grails starts, it looks into its webapp directory and scans looking for something. If the directory is stuck with content, it'll hang forever.
We didn't find a solution to this problem but found a way to move those resources away from the folder.
So keep in mind: always keep your webapp directory clean form stuff that can be moved elsewhere.

JSF 2 f:subview not seeing my changes reflected in the UI

Update It appears I have to rebuild/redeploy the app to see the changes. Anyone know why I have to do this? It's a static .xhtml page. Coming back to update, looks like I just have to stop/restart the server, not a rebuild. I was dumb and didn't try that first, mostly because I have to rebuild/deploy often anyways.
I'm working on a JSF 2 app that uses f:subviews. I'm on one subview where my changes aren't reflected in the UI when I refresh the browser. I've worked on other subviews where I don't have this problem.
I have a batch script which copies my .xhtml files into my installed apps folder. The batch script reports the file is copied over. It's business as usual... If I drill down into this particular installed app, I see my change in the file. Again, seems like business as usual. The change is not reflected in the UI when I refresh, however.
These are simple text changes I'm making, but not seeing.
The problematic subview doesn't appear to be anything special, it's just a p:datatable that's included via a ui:include with a couple of parameters for the data and to give it a unique id. If I replace the p:datatable with just simple text, the "old" table still shows up in the UI when I refresh. I just can't get any changes in this subview to be reflected in the UI.
Console doesn't throw any errors.
I'm using WebSphere 7.0.
Never encountered this problem before. It isn't a browser caching issue as I can edit other subviews and see those changes when I refresh the page.
Anyone have any ideas?

Why does my CSS go screwy "sometimes"

A website of mine is behaving weirdly. The layout sometimes is fine, and sometimes it is screwy. An example page that I see the problem on is this one: link
Disclaimer: I have yet to start my investigation into cause in earnest. I am turning to Stackoverflow because I am lazy and I hope someone will say "That happened to me once, it is probably this...". So please, no one get stuck into this working out this issue if it is something you have never seen before, as it wouldn't be fair as I have not done it myself.
Ok, some background:
The problem usually (maybe always) occurs when first viewing the page
The problem does not show up always, only sometimes
When the page shows up munged, if you refresh it usually reloads looking as it should
The site is a rails app
The css is passed through the neat Smurf Gem, which automatically minifies the CSS and Javascript on the page.
The layout problems happen in firefox (both linux and winXP)
The CSS is served up in the production environment using the ":cache => true" option which concatenates all the css files into one file
Anyway, I am hoping that this has happened to someone before and it will be really simple to fix. If not, I'll go and investigate and return with the solution (or a request for more help).
Thanks in advance!
James.
[edit]I added the first two bullet points, inspired by the comments and first answer[/edit]
We have had something similar when using HAML and SASS that resulted in the CSS being completely unavailable. It only happened on deploys. We determined it was a combination of the Rails stylesheet merging and the generation of the CSS from SASS. Sass was not done generating the CSS, which it did so on the first request to the application, when Rails attempted to merge it all together. The result, a corrupt useless CSS file. Then we stumbled upon this article which has a solution for preventing this issue.
Based on all this, my best guess is that the Smurf gem is attempting to generate your file on the first request, but Rails is serving it out before its done. The generation completes then each following request is fine. If this is the problem then the only solution i know of is to get the file generated before the first request. Of course, this does assume that it is related to deployments or application restarts in some way.
Peer
I had such a problem. The problem was only at the first time the page was loaded. Just reload it and it was fine.
The problem in my case was that the images where not there in the cache for the first time so the browser didnt know it's dimensions when preparing the page which caused the problem
If an image doesn't have a height/width assigned to it, a place is created on the page and it's put there. If the image doesn't quite fit, the browser may not know this until it's refreshed. Then it already knows the size and can properly fit it onto the page.

Strange routing error in ROR on my dev machine

When I log in on my dev machine in an ROR application, I should be redirected to http://sitename/user/dashboard. This was happening successfully before, till I began developing on it :). Now it tries to go to http://sitename/user/images/navarrow, which results in the error ActionController::UnknownAction (No action responded to images).
I hadnt changed anything in the code except layout,views-level changes, no actions etc were changed. Then I reverted to a previous version to check, and it worked fine. I reverted back to my latest version and it again worked fine. So the problem doesnt seem to be in code, but somewhere else. I want to know why exactly this problem crops up every now and then. The fix is not hard, i just have to revert to a previous commit and then come back to latest commit, but I cannot figure out how it tries to redirect to a wrong url in the first place. Do I need to change some configuration to make it not happen again?
UPDATE: I had to work on the UI of the login form as well. Now when I created a login form with the required css, and tried to submit, this is what i get:
Parameters: {"format"=>"jpg", "action"=>"images", "id"=>"galway", "controller"=>"user"}
ActionController::UnknownAction (No action responded to images):
As you can see, I get another different faulty url, the prvious one had :id=>'navarrow'. SO I get the same error as above of a faulty url creeping out of nowhere! But wehn i go back and refresh, i discover that i actually am logged in, so the new login form is working as expected. i think if i commit my code now, and then go thru th process again, it will work again, but this bug is driving me crazy!
I think i figured it out partially. In the page, there were two images, entered like so:
<img src="images/nav_arrow.jpg".../>
<img src="images/galway.jpg".../>
So for some reason when a form got posted, and we were redirected to another page, somehow it also tried to map its request to controller/images/nav_arrow.jpg etc, and this was causing the unexpected behavior. But I still have to figure out why this error does not always crop up. I change image paths to absolute ones to make it work!
I'd check that you don't have something sneaking in .htaccess files to your directories (maybe one got accidentally checked in)?

Resources