OpenStreetMap

Bugfixing terracer: 5. wORD cASE bLINDNESS

Posted by alexkemp on 14 January 2017 in English. Last updated on 22 January 2017.
  1. There May be Troubles Ahead
  2. Errors whilst Compiling using Ant
  3. Creating Eclipse Project
  4. Eclipse Debugging Routines
  5. wORD cASE bLINDNESS
  6. Importing the Project Bugs
  7. Have you Tried Restarting Your Program, Sir?
  8. Show Your Bugs, Damn You!
  9. Be Careful What You Wish For
  10. 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)
>  */

  1. Main.java : public abstract class Main
  2. MainApplication.java : public class MainApplication extends Main
  3. 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…

  1. Create an empty workspace dir
  2. Open Eclipse & select “workspace/” as the Workspace
  3. Remove the Welcome screen (click on ‘x’)
  4. Click on File ▸ New ▸ Other
  5. Open the SVN category and select Checkout Projects from SVN
  6. Press the Next> button in the Wizard
  7. Select Create a new repository location; press Next>
  8. Paste: https://svn.openstreetmap.org/applications/editors/
    (“Select/Create Location”) + Press Next>
  9. Enter josm (“Select Folder”) + Press Next>
  10. Select Checkout as a project in the workspace
    (“Check Out As”) + Press Next>
  11. (use defaults)
    (“Select the project location”) + Press Finish

Discussion

Log in to leave a comment