Ouch!

Thursday, March 20, 2014 12:21 AM UTC

Damn, that was close!

In the evening today I fiddled a bit on my FileSilo project, added a new feature of cleaning the logs manually by clicking a button instead of waiting till the agent will delete them. First: that feature will come, I promise! But now the work of approx. 1h went to Nirvana.

What did I do?

Nothing special, I just did not obey the "order" not to use SSJS, esp. not with Notes object operations such as deleting documents from a collection - no, don't ever do this! But that's another story. Use pure Java instead.

Erm... I "created" an infinite loop in SSJS - the best way to kill your server. I wanted to loop through the NotesViewEntryCollection got by view.getAllEntries() - and forgot to define the exit condition. That forced me to kill the HTTP task to break the loop. So far, so good.

After this "stunt" (and of course a whole restart of Domino) I encountered that my project wasn't compiled anymore. We lately had a Twitter discussion going on on that topic and someone posted the "howto" - but I didn't find it. I remembered just one thing: open the navigator view and delete everything under "WebContent/WEB-INF/lib" as this is the folder where the classes of the XPages are stored. And sometimes they are corrupted and have to be rebuilt.

No luck at all

That didn't change anything, changes didn't show up. Of course I did fixups, compacts, clean, build several times. Nope!

Ok then, I put up with losing everything I just coded before: some Javascript, some Java, a Custom Control. Ok, well, I can reproduce it later. Maybe I could have backed-up the sources somewhere... Too late now.

There is another circumstance to mention: my local DEV server replicates with another one every 30 minutes. In that case all the crap was replicated, too. And as the clock turned 1:00 am I also lost my productive FileSilo as the design was updated with the broken one - AAAAARGH!

Local repository FTW

The development FileSilo has a local (and remote) repository connected (ODP-project, SourceTree to manage). As I deleted the local copy and created new replicas (just to prove that it was the local database only that was broken and not the ones on my servers) the association was already lost - and that was good. So I started SourceTree and made a pull (thank god I pushed yesterday evening to GitHub...). And viola: the latest dev branch was there again.

Hail to GitHub and SourceTree!

I then imported the project again in DDE and associated the NSF with that on-disk-project. Ratatatattatatataaatam! Here we go! My NSF was ok - again. Some design lost but not every update from the last days (e.g. Bootstrap'ed CKEditor).

Changes?

I admit that I work not obeying the "4 Ns":

  • NEVER build automatically
  • NEVER refresh workspace with ODP automatically
  • NEVER work on a database on a server, just use local templates and update test databases
  • NEVER use SSJS too much

I agree with at least 3 of them. One is to build manually. I think I have to break habits and learn a new one: to press CTRL+B from time to time...

[UPDATE]

I just added the bespoken functionality to the latest build of FileSilo on GitHub Smile






Leave a comment right here