#1411 ✓resolved
Nebu

In play.i18n.Lang, comment claims to be performing "country-only" match, but is in fact performing language match

Reported by Nebu | February 3rd, 2012 @ 07:18 PM | in 1.2.5 (closed)

Framework version: git commit dbb851d9b3e8c72ad0ab2356d74037468209a679
Platform you're using: Linux

Details:

The relevant code is in the resolvefrom method:

    // now see if we have a country-only match
    for (String a: request.acceptLanguage()) {
        if (a.indexOf("-") > 0) {
            a = a.substring(0, a.indexOf("-"));
        }
        for (String locale: Play.langs) {
            if (locale.equals(a)) {
                set(locale);
                return;
            }
        }
    }

As can be seen by the parameters to substring, the code is looking at all the characters before the dash. However, if you look at the HTTP spec http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html the characters before the dash represent the language, whereas the characters after the dash represent the country.

Matching based on the language is the correct thing to do here, so the fix is just to update the comment to accurately reflect what the code is doing.

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2>Play framework</h2>

Play makes it easier to build Web applications with Java. It is a clean alternative to bloated Enterprise Java stacks. It focuses on developer productivity and targets RESTful architectures. Learn more on the <a href="http://www.playframework.org">http://www.playframework.org</a> website.<br><br>

<h2>Source code is hosted on github</h2>Check out our repository at <a href="http://github.com/playframework/play">http://github.com/playframework/play</a><br><br>

<h2>Contributing, creating a patch</h2> Please read the <a href="http://play.lighthouseapp.com/projects/57987/contributor-guide">contributor guide</a><br><br>

<h2>Reporting Security Vulnerabilities</h2> Since all bug reports are public, please report any security vulnerability directly to <em>guillaume dot bort at gmail dot com</em>.<br><br>

<h2>Creating a bug report</h2> Bug reports are incredibly helpful, so take time to report bugs and request features in our ticket tracker. We’re always grateful for patches to Play’s code. Indeed, bug reports with attached patches will get fixed far quickly than those without any.<br><br>

Please include as much relevant information as possible including the exact framework version you're using and a code snippet that reproduces the problem.<br><br>

Don't have too much expectations. Unless the bug is really a serious "everything is broken" thing, you're creating a ticket to start a discussion. Having a patch (or a branch on Github we can pull from) is better, but then again we'll only pull high quality branches that make sense to be in the core of Play.

Tags

Pages