Giter VIP home page Giter VIP logo

Comments (3)

 avatar commented on July 19, 2024

From [email protected] on October 09, 2010 19:49:34

This seems like a good improvement. I will get to it eventually, thanks!

Status: Accepted

from kryo.

 avatar commented on July 19, 2024

From [email protected] on October 09, 2010 19:50:31

(No comment was entered for this change.)

Labels: -Type-Defect Type-Enhancement

from kryo.

 avatar commented on July 19, 2024

From [email protected] on February 09, 2011 00:48:55

For your idea to work, the class which accesses protected or default access members must be defined by the same classloader as the class it is accessing. Spec excerpt:

5.3 Creation and Loading
...
At run time, a class or interface is determined not by its name alone, but by a pair: its fully qualified name and its defining class loader. Each such class or interface belongs to a single runtime package. The runtime package of a class or interface is determined by the package name and defining class loader of the class or interface.
5.4.4 Access Control
...
A field or method R is accessible to a class or interface D if and only if any of the following conditions is true:

  • ...
  • R is either protected or package private (that is, neither public nor protected nor private), and is declared by a class in the same runtime package as D.

I implemented a workaround in ReflectASM:
http://code.google.com/p/reflectasm/source/detail?r=14

I attempt reflection and setAccessible to call the protected defineClass in the correct classloader. If this fails, ReflectASM's classloader is used. If it succeeds, then protected and default access methods and fields are accessible.

Status: Fixed

from kryo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.