SMA has an option to recompile libraries if that is sufficient to address the issue. It is the Rule Utility Library Extractor in the Administration section of SMA. You can recompile certain libraries or all of them.
The question is, what impact does clearing the generated Java have?
When the server restarts, it will generally re-load the rules assembly cache from the database. Does deleting the Java have any impact on the rule cache? If the cache is invalidated, and a rule needs to be regenerated, reassembled & loaded, does the presence of Java tell the engine to skip regeneration? (and thus, the absence of it, would force the regeneration, which supposes that there was an error in generation.
The context here is that deleting the extract marker is often given as a necessary elixir to be undertaken for installs big & small, both from Pega GCS, and echoed in folklore as well ("we did this all the time at the place I last worked"). Sometimes it works for clearing a rule cache problem; sometimes it's not a cache problem at all, but our production support team wants to make sure they've done "everything" (everything simple that is).
This all begs the question/idea I asked in March -- it would help just about all of us to have the UX of opening up a rule and checking all representations of it (generated Java / assembled class / loaded in ClassLoader / cache entries)