Skip to content
Commits on Nov 4, 2012
  1. @hjast

    Started to merge in 210

    hjast committed
Commits on Nov 3, 2012
  1. @karma4u101

    Issue #1350

    karma4u101 committed
Commits on Nov 2, 2012
  1. @Shadowfiend

    Check for nulls when looking for an ajax version.

    Shadowfiend committed
    Before we were checking for falseys (doing if (version)), which meant
    that when the initial version value of 0 came up, we assumed there was
    no version and sent a non-versioned request. This then restricts that
    request from being retried properly using the new retry flows.
Commits on Oct 30, 2012
  1. @dpp

    Merge pull request #1344 from lift/asc_issue_1344

    dpp committed
    RenderVersion does not get set/restored on AJAX requests without version info
  2. @jeppenejsum
  3. @Shadowfiend

    Properly set the render version on AJAX requests without AJAX version…

    Shadowfiend committed
    … info.
    
    Requests of the form /ajax_request/F<render version>, without the -<ajax
    version info> on the end, should now properly restore the RenderVersion,
    resulting in proper state management for these requests.
Commits on Oct 29, 2012
  1. @davewhittaker
Commits on Oct 28, 2012
  1. @davewhittaker @fmpwizard
  2. @Shadowfiend @fmpwizard

    Rewrite SoftReferenceCache.apply for type safety.

    Shadowfiend committed with fmpwizard
    We were using a tuple assignment, which converts into a Scala pattern
    match that doesn't carry particularly nice type safety guarantees. We
    now instead assign to a typed tuple and then unpack the tuple with our
    own match statement, with a clarifying comment on the original
    assignment to indicate what each part of the tuple means.
  3. @fmpwizard

    Fixed #1232 - Cache resource lookup in production mode

    fmpwizard committed
    The only mode that the resources are not cached is DevMode
  4. @nafg @fmpwizard

    Space changes

    nafg committed with fmpwizard
  5. @nafg @fmpwizard
Commits on Oct 26, 2012
  1. @dcbriccetti

    Fix spelling in comment

    dcbriccetti committed
Commits on Oct 25, 2012
  1. @eltimn

    Issue 1336 - Move validations in OptionalEmailField and OptionalPosta…

    eltimn committed
    …lCodeField from TypedField
  2. @eltimn
  3. @eltimn
  4. @eltimn

    Deprecated MongoId

    eltimn committed
Commits on Oct 24, 2012
  1. @dcbriccetti
  2. @dcbriccetti
  3. @dcbriccetti
  4. @nafg
  5. @nafg

    Merge branch 'master' into nafg_wip_scala210

    nafg committed
    * master:
      Css: Parse failures return ParamFailure, not Empty
      Only catch Exception
      Use ThreadLocalRandom in StringHelpers.randomString on Java 7.
      Fixed #1330 - HTTP basic authentication not working in 2.5
      Do not escape unnecessarily ranges which JSON spec does not require. Fix memoization
      Fix off-by one when escaping control char in JSON
      Added a method to release all the long polling connections
      Allow, once again, to bind anything that is convertable to NS=>NS
      Remove ToCssBindPromoter implicits in package object
      Make AjaxRequestInfo track a Long version id.
      Guard for JS number size overflows.
      Track sequence numbers of arbitrary length.
      Implement the meat of AJAX deduplication.
      Add tracking for AJAX requests in LiftSession.
      Drop the timeout on comet-related AJAX requests.
      Encode an AJAX request version in the request URI.
      Move uriSuffix extraction into lift_ajaxHandler.
      Fix deadlock in SoftReferenceCache apply function.
      Changed *Var backing store to concurrent hashmap
  6. @nafg

    2.10.0-{M7->RC1}

    nafg committed
  7. @Shadowfiend @nafg

    Use ThreadLocalRandom in StringHelpers.randomString on Java 7.

    Shadowfiend committed with nafg
    On Java <7, we use the default SecureRandom, which locks on access.
    ThreadLocalRandom will not lock as it is thread-local (!).
  8. @fmpwizard @nafg

    Fixed #1330 - HTTP basic authentication not working in 2.5

    fmpwizard committed with nafg
    we lost an important "else" in LiftServlet - (Thanks to Aditya Vishwakarma for pointing it out)
  9. @nafg

    Do not escape unnecessarily ranges which JSON spec does not require. …

    Joni Freeman committed with nafg
    …Fix memoization
  10. @nafg

    Fix off-by one when escaping control char in JSON

    Joni Freeman committed with nafg
  11. @dpp @nafg
  12. @Shadowfiend @nafg

    Make AjaxRequestInfo track a Long version id.

    Shadowfiend committed with nafg
    Not sure how I got this to compile locally without this change...
  13. @Shadowfiend @nafg

    Guard for JS number size overflows.

    Shadowfiend committed with nafg
    If you hit the maximum of a JS integer, math starts getting wonky. We
    make sure at that point we wrap to 0.
  14. @Shadowfiend @nafg

    Track sequence numbers of arbitrary length.

    Shadowfiend committed with nafg
    We track sequence numbers as Longs now, and the client side encodes the
    sequence number as an arbitrarily-long base-36 number.
  15. @Shadowfiend @nafg

    Implement the meat of AJAX deduplication.

    Shadowfiend committed with nafg
    AJAX requests now come in with a two-part version number, one a sequence
    number for the ajax request's count in the overall list of requests sent
    by the client, and one a number indicating how many other requests are
    queued up on the client.
    
    If this is the first request seen with its sequence number, we record
    the request in the session and run regular AJAX request handling. When
    that request handling is complete, it satisfies the future that is
    recorded in the session. Subsequent requests for a given sequence number
    wait on the future from the first request up to the ajax post timeout,
    then fail.
    
    When we get a request coming in with a 0 count for pending requests on
    the client, we clear out all other pending requests in the session's
    list, since that means none of them will be getting a chance to report
    their responses again.
  16. @Shadowfiend @nafg

    Add tracking for AJAX requests in LiftSession.

    Shadowfiend committed with nafg
    Request info consists of three things:
     - The request version.
     - A future for the response to the request, satisfied by the first
       request for this version when the response is ready.
     - A lastSeen timestamp, used to expire the entry after the usual
       function lifespan.
    
    LiftSession.withAjaxRequests exposes the request list, which is a Map
    mapping a page version to the list of AjaxRequestInfos currently being
    tracked for that page. AjaxRequestInfos are cleaned up according to
    their lastSeen timestamp, which is updated the same way as those of
    functions on the page.
  17. @Shadowfiend @nafg

    Drop the timeout on comet-related AJAX requests.

    Shadowfiend committed with nafg
    While this will tie up a request thread for longer, it means we can
    reliably say that when the AJAX request thread completes, it will
    actually have the correct response to the original request.
  18. @Shadowfiend @nafg

    Encode an AJAX request version in the request URI.

    Shadowfiend committed with nafg
    The AJAX request version has two components: the actual version number
    and a count of queued requests. This is presented as two base-36 values
    after a dash. So a request now looks like:
    
    /ajax_request/F<page version>-v8
    
    Where v indicates request number 31 and 8 indicates that there are 8
    queued requests that have not been handled yet.
Something went wrong with that request. Please try again.