Skip to content

Delegation issues in HTTP::Request::Caching #239

@headius

Description

@headius

While investigating jruby/jruby#3151, a few issues with the way Caching does delegation came to light:

  • At least one place, in conditional_on_changes_to, an HTTP::Request object gets double-delegated. Both the self.class.new and .caching calls wrap the new HTTP::Request object in a delegating Caching instance.
  • The Caching class itself is created before HTTP::Request has completed loading, resulting in a DelegateClass that does most delegation through method_missing rather than through generated, direct delegation methods.

These issues are not strictly bugs, but they likely affect performance. In the case of jruby/jruby#3151, they also exposed an obscure bug in JRuby.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions