• Bug
  • Status: Closed
  • 2 Major
  • Resolution: Fixed
  • DSO:L1
  • teck
  • Reporter: teck
  • August 27, 2007
  • 0
  • Watchers: 0
  • October 29, 2007
  • October 16, 2007

Description

I don’t know for sure if this broken, but I suspect it is. If TCObejct.resolveArrayReference() throws an exception, the artificial synchronized block on the resolveLock will fail to complete, probably earning oneself an IllegalMonitorStateException when the containing method exits.

The instrumentation in question is in TransparencyCodeAdpater.visitInsn() for the AALOAD case.

Comments

Tim Eck 2007-10-16

This is indeed broken, but I can’t think of a good way to fix it without some really funky/horrible bytecode OR figuring out a way to know the precise type of the array dereference so that we can generate method to do the resolve in a controlled manner (and maybe more hotspot friendly)

Either way, I think I’m going to close this “research” item and enter a real bug about it