Jan. 25th, 2019

mtbc: maze I (white-red)
Today I worked on a problem where Thing happens but if I do a Prevention before what triggers Thing then all is fine. I did a successful Prevention in place X then it was suggested to me that it would be better if I did Prevention in place Y instead, a method of a Java class from a different JAR. I thought that this would be fine but it failed to prevent the Thing.

I spent a fair bit of time today verifying that Prevention at Y still happens before Thing, learning all about the background of what goes on with Thing, looking for other causes of Thing, other ways to prevent it, etc. Perhaps more promptly I should have attended to the simpler question: If Prevention at X works yet Prevention at Y does not then, regardless of that they both happen before Thing, what about at other places between X and Y?

I realized that an automated bisection tool would have been very helpful: even across JARs, move the Prevention to different parts of the code path from which X first reaches Y to find Z, the intermediate point before which the Prevention must happen. The nature of that Z could be most revealing. It being Java one can easily instrument the virtual machine to discover what that code path is.

Fortunately I had a thought about what might stop Prevention from working then found one in between X and Y that experimentation strongly suggests is indeed such a Z. That discovery was a nice way to end the week.

Update: For those who are interested: Thing was an SSL exception, Prevention adjusted the TLS configuration affecting SSLEngine, Z was the location of a non-TLS web interaction with an http://… URL.

Profile

mtbc: photograph of me (Default)
Mark T. B. Carroll

June 2025

S M T W T F S
1 2 34567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 5th, 2025 02:50 am
Powered by Dreamwidth Studios