шадовит с другим именем
например было
a.b.c
стало
a.fucku.b.c
Делает она это специально чтобы я не мог рефлексией забрать поле типа a.b.c и скастить в него (т.к. оно a.fucku.b.c)
А мне очень надо!
Есть какие-то способы?
Контекст - наркоманы из Datadog накосячили с корутинами под высокой конкаренси и нихуя не работает без кастомного скоуп врапера. Мне надо починить ПРЯМ СЕЙЧАС, а эти пидоры сделали так
Форкнуть?
как вариант. Оставлю его на крайний случай)
Dynamic Proxy создать, ретранслирующий вызовы из shaded в свой объект - не получится?
Интересная мысль, надо попробовать, спасибо за наводку
Ну ты как первый день в индустрии Сериализуй в жсон, доставай из жсона! А вообще проксями так не сделать? Или, в конце концов обхитрить хитрецов и сделать ОБРАТНЫЙ ШЭДОУ?
обратный шедоу это как? эта хуита висит как java-agent и делает свои трейсы там где-то в фоне Я тут подумал, что если я гружу мавен агента, то каст не проходит, потому что пекеджи релокейтнуты относительно классов, которые видит компилятор в компайл тайме Но видимо если надо загрузить жарник агента с уже релокейтнутыми пекеджами, то увидит уже то, что в рантайме релокейтнутно. Надо попробовать это и прокси
Релокейтнуть классы обратно по исходным адресам
спасибо за совет, получилось через пачку проксей заставить это работать. Покешировал там рефлексию как смог, надеюсь сойдёт https://gist.github.com/Szer/ebc35629cbc4dd7332c173f92214cfbd
собрать со своим быдлоградлом и запулить в свой репозиторий не вариант?
собрать со своим быдлоградлом и запулить в свой репозиторий не вариант?
ну да, это подразумевалось под форкнуть. Там сложности в целом, т.к. либа большая, а мне оттуда один артефакт нужен (java-agent) Я оставил это на крайний случай, думал можно решить как-то внутри рантайма, вот прокси помогли
Обсуждают сегодня