Bugfixing terracer: 5. wORD cASE bLINDNESS
Posted by alexkemp on 14 January 2017 in English. Last updated on 22 January 2017.- There May be Troubles Ahead
- Errors whilst Compiling using Ant
- Creating Eclipse Project
- Eclipse Debugging Routines
- wORD cASE bLINDNESS
- Importing the Project Bugs
- Have you Tried Restarting Your Program, Sir?
- Show Your Bugs, Damn You!
- Be Careful What You Wish For
- Installing NetBeans
fRIDAY 13 jANUARY WAS NOT A GOOD DAY.
tHE vOGELLA TUTORIAL SAYS:
> 1.4. Starting the Debugger
> To debug your application, select a Java file with a main
method. Right-click on it and select Debug As ▸ Java Application
.
tHAT SEEMS SIMPLE ENOUGH. hOWEVER, FINDING A main
METHOD IN josm IS MUCH HARDER THAN AT FIRST IT SEEMS:-
~$ cd ~/workspace/josm
~/workspace/josm$ fgrep -ir 'main {' ./
./plugins/Mapillary/.svn/pristine/(removed).svn-base: main {
./plugins/Mapillary/build.gradle: main {
./core/src/org/openstreetmap/josm/Main.java:public abstract class Main {
./core/src/org/openstreetmap/josm/gui/MainApplication.java:public class MainApplication extends Main {
(aWARD YOURSELF A gOLD sTAR IF YOU SPOTTED THE -i
IN fgrep
)
sO, ONLY 2 SOURCE-FILES, + ./core/src/JOSM.java
(DECLARED IN ./core/build.xml
AS THE "Main-class"
):
> JOSM.java:
> /*
> * JOSM main class (entry point of the application)
> */
- Main.java :
public abstract class Main
- MainApplication.java :
public class MainApplication extends Main
- JOSM.java:
public class JOSM extends MainApplication
nONE OF THE 3 PROGRAMS ABOVE HAVE A Java Application
AVAILABLE WHEN Right-click | Select Debug As
IS TRIED. hOWEVER, Debugging a Java Program, tutorials.point POINTED OUT THAT THERE WAS A KEYBOARD SHORTCUT (i LOVE KEYBOARD SHORTCUTS) (PROGRAM NEEDS TO BE PRE-SELECTED WITHIN Package Explorer
):
> Alt + Shift + D, J
tHAT GIVES THE VERY WONDERFUL ERROR MESSAGE: > Selection does not contain a main type
…AND THAT LEADS TO HUNDREDS OF FORUMS & OTHER SITES ALL SAYING THE SAME THING: > Your class is supposed to be called ‘main’, not ‘Main’
i HAD TO GO AND SIT DOWN IN A DARKENED ROOM FOR MANY HOURS AFTER DISCOVERING THIS.
iT’S NOT POSSIBLE TO CHANGE THE NAME OF THAT CLASS (AT LEAST, NOT BY ME) AND i COULD NOT FIND ANY WAY TO RE-CONFIGURE eCLIPSE TO CHOOSE A DIFFERENT CLASS NAME. oN AN INSPIRATION, i LOOKED AT josm/core/eclipse/
AND DISCOVERED JOSM (Java 8).launch
. rIGHT-CLICKING ON THAT & Debug As
HAD A LAUNCH OPTION. oH! jOY!
cHOOSING IT GAVE AN ERROR MESSAGE: > Launch configuration JOSM (Java 8) references non-existing project josm.
cHECKING THE PROJECT CONFIG FILE + LAUNCH FILE CONFIRMED MY WORST FEARS:
~$ head -3 "workspace/josm/core/.project"
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>JOSM</name>
~$ tail -4 "workspace/josm/core/eclipse/JOSM (Java 8).launch"
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="JOSM"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--debug"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="josm"/>
</launchConfiguration>
sO, JAVA WANTED AN ENTRY CLASS CALLED main
& OUR SOFTWARE WRITERS CALLED IT Main
. tHEN, THEY CALLED THE eCLIPSE PROJECT JOSM
BUT IN THE LAUNCH FILE CALLED IT josm
. i WAS DETECTING A TREND HERE.
bY THIS MOMENT IT WAS THE WEE HOURS OF TODAY (sATURDAY) AND i THOUGHT IT BEST THAT i GO & LIE DOWN IN THAT DARKENED ROOM AGAIN, THIS TIME UNTIL THE MORNING.
iN THE MORNING i RESTARTED THE COMPUTER & CHANGED THE PROJECT NAME IN THE LAUNCH FILE TO JOSM
, THEN BOOTED UP eCLIPSE AND TRIED AGAIN. tHIS TIME, THE ERROR MESSAGE SAID:
> Launch configuration JOSM (Java 8) references non-existing project JOSM.
bUGGER. iT LOOKS LIKE NO PROJECT MAY BE REGISTERED WITHIN eCLIPSE, EVEN THOUGH i RECALL THE SCREEN (BRIEFLY) FLASHING UP INFO ON REGISTERING IT AFTER THE svn CHECKOUT PROCESS.
bUGGER BUGGER BUGGER. i CANNOT FIND ANY MEANS OF REGISTERING/IMPORTING/CREATING/RE-CREATING AN eCLIPSE PROJECT. oH DAMMIT; DOES ANYONE HAVE A DOG i CAN KICK?
hOW ON EARTH CAN A WRITER NOT NOTICE THAT, AS ONE OBVIOUS EXAMPLE, THAT THEY HAVE THEIR cAPS-lOCK KEY ON AND THAT THEIR WORD CASE IS THUS ALL WRONG? i USE THE LINUX TERMINAL, SO I KNOW IMMEDIATELY IF THE CASE IS WRONG. i SUPPOSE THAT THESE GUYS ALL USE wINDOWS. bUGGER.
Coda: Restart Attempt
It got so bad that I decided to restart from scratch: shut down Eclipse, empty everything inside ~/workspace
& redo Checkout Projects from SVN
after opening Eclipse (concise list at bottom). When the Checkout was complete I went to workspace/josm/core/eclipse/JOSM (Java 8).launch
& did right-click Debug As ▸ Java Application
. It threw an error message:
> Launch configuration JOSM (Java 8) references non-existing project JOSM.
Have the software authors changed that value to now be (correctly) upper-case? I’ve checked, and that’s how it now is on the SVN server. Or did I get it wrong the first time? I am no longer certain. I only know that the damn thing will not work, no matter what I do. Even with completely default settings.
I cannot do anything further; time for bed.
Here is the concise list to setup Eclipse. Y’know, the list that doesn’t work…
- Create an empty
workspace
dir - Open Eclipse & select “workspace/” as the Workspace
- Remove the Welcome screen (click on ‘x’)
- Click on File ▸ New ▸ Other
- Open the SVN category and select
Checkout Projects from SVN
- Press the
Next>
button in the Wizard - Select
Create a new repository location
; pressNext>
- Paste: https://svn.openstreetmap.org/applications/editors/
(“Select/Create Location”) + PressNext>
- Enter
josm
(“Select Folder”) + PressNext>
- Select
Checkout as a project in the workspace
(“Check Out As”) + PressNext>
- (use defaults)
(“Select the project location”) + PressFinish
Discussion