[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Duasdúvidas: uma sobre classloaders sacanas e outra meiooff-topic



Olá,

      Primeira dúvida: eu lembro que, quando estávamos tendo aulas sobre
ClassLoaders, eu perguntei ao professor o que poderia acontecer se eu
tivesse um classloader que fizesse alguma modificação no bytecode das
classe mas não delegasse o carregamento das classe para seus ancestrais. A
pergunta em si pode ser reformulada como: fazendo um classloader que não
delega para os seus ancestrais o carregamento das classes, conseguiria eu
fazer alterações maliciosas em classes como String, ArrayList, etc. ? Pra
ser sincero, não me lembro perfeitamente da resposta. Mas estava pensando e
acho que o que consigo fazer é que as classes que forem carregadas pelo meu
classloader, ao usarem as classes String, ArrayList etc. acabem usando
outras classes na verdade (com mesmo nome completo, no entanto). Imagino
que a consequência disso é que eu tomaria  ClassCastException quando
tentasse chamar métodos que esperam um String de verdade. É isso mesmo ?

      O outro assunto, o off-topic, diz respeito ao hot code replace do
Eclipse/Jboss IDE. Caras, que troço bacana é isso. Estou curioso pra saber
como o dito cujo funciona. Ainda não pesquisei nada a respeito, mas se
alguém souber como ele funciona e estiver disposto a explicar ou indicar
links, ficaria muito grato.
      O que eu achei de interessante nele é que aparentemente ele consegue
atualizar os métodos de instâncias "vivas" de objetos no JBoss (não sei se
ele serializa o objeto, recarrega a classe e desserializa o objeto, mas o
efeito é que parece que ele troca o bytecode mesmo.) E uma dúvida minha é:
esse tal de "hot code replacement" é introduzido por alguma especificação
Java, pelo Eclipse, ou pelo JBoss IDE ?

Até amanhã,
Danilo