Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken type hierarchy #372

Closed
bergerbd opened this issue Mar 19, 2015 · 1 comment
Closed

Broken type hierarchy #372

bergerbd opened this issue Mar 19, 2015 · 1 comment

Comments

@bergerbd
Copy link
Contributor

I found different inconsistencies in the type hierarchy for phantom classes in Android apps:

a) classes implement classes
b) classes extend interfaces
c) classes that extend themselves

I've four simple test cases that run in wjpp:
a) Check for each class in the scene if the type of implemented or extended classes are correct. This assumption does not hold for all classes.

b) Check type hierarchy and create new FastHierarchy. FastHierarchy can be calculated even if there are errors.

c) First retrieve all concrete methods, then check the type hierarchy and calculate a new fast hierarchy. After loading the bodies there are more type hierarchy issues. There is even an interface (java.lang.Throwable) that extends itself. This leads to an endless recursion in the calculation of FastHierarchy.

d) Load all bodies. Fix the hierarchy by setting the modifiers correctly according to type usage (fix point iteration until there is no contradiction in the hierarchy). Then I calculate FastHierarchy which fails because of the java.lang.Throwable.

Regards, Bernhard

@bergerbd
Copy link
Contributor Author

I forgot to mention that I do not have rt.jar on my class path but this should not break the hierarchy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant