[BLUEJ-185] Classes from user libraries are used in place of project classes with the same name
Classes from user libraries are used in place of project classes with the same name, without warning to the user.
From Godmar Back:
{noformat} You can see it if you download Steve Edward's VT version of BlueJ: http://moodle.cs.vt.edu/files/site/vtbluej-253-307.exe
Try to follow the "Picture" example from the book. (Note that the included mediacomp.jar has a Picture.class which conflicts.)
Problem: If a class "A" exists in a lib/userlib/*.jar file, as well as in a project, then if students right-click and select 'new A()', an instance of the userlib variety is created - however, the project shows the source of the A file in the project.
This confuses the hell out of students. They look at A's code, compile it, but it isn't executed. The methods shown in the object bench don't match the source code.
Worst thing to happen to beginners.
Please correct this - either flag the double-definition, or, at least, place the userlibs after the current project in the classpath.
Do not take the position that it's the responsibility of whoever puts stuff in userlib/ to avoid this. After all, if I understand it correctly, BlueJ is designed for beginners. {noformat}
We get support requests due to this occasionally. I think it should be possible to flag it in some way (even if just a warning dialog).
Issue metadata
- Issue type: Bug
- Priority: Medium
- Fix versions: 3.0.0