Please free (or just fix) ModuleBasedConfiguration please ;-)


In the TestNG plugin we've made use of an internal class ModuleBasedConfiguration as the basis of our RunConfiguration object since we want TestNG to be module based - no point duplicating code right?

Any chance this class could be moved out of the internal idea.jar and into the OpenAPI (or at least away from the com.intellij.execution.junit package ( as well as the RunConfigurationModule class)).

Also, I've hit a stumper in these classes which is preventing me from building a Demetra based TestNG plugin: ModuleBasedConfiguration has a clone() method returning Object, whereas its superclass RuntimeConfiguration has a clone() method returning RunConfiguration...

no wait - scratch that.... now I'm confused, IDEA shows the .class as having:

public com.intellij.execution.configurations.RunConfiguration clone() { /* compiled code */ }
public java.lang.Object clone() throws java.lang.CloneNotSupportedException { /* compiled code */ }

How the hell does a class have two methods with the same name, same params, but different return types?



Looks like the RuntimeConfiguration is making use of covariant return types on the clone() method, but ModuleBasedConfiguration isn't :(


Please sign in to leave a comment.