DXL and the Discovered Check bug...

We've got an application at Customer #1, and its a big application. During a critical phase as its hopping along its 'snakes and ladders' board of workflow stages, it'll make a complete backup of the relevant document using DXL. Literally, it'll do a java 'notesdocument.generateXML()' call.  This code was constructed in the R5/R6 timeframe, and this call is as old as the hills. That is, its been working reliably for 6+ years.

We originally tried to test this out on Domino 8.5.0, and generateXml() failed completely. Not good. We're now doing regression testing on 8.5.1, and have found to our pleasant surprise that generateXml() works well. At least, we thought so till we hit a document that had been through a particular gate in the process. We were getting a notes error: lotus.domino.NotesException: Error 4395, Not implemented

and a java dump, which included lines such as:

Caused by: javax.xml.transform.TransformerException: java.lang.RuntimeException: [ERR 0368] The string '%PARENT%' was used where a QName is required.

at com.ibm.xtq.xslt.jaxp.TransformerImpl.transform(Unknown Source)

and:

at GregorSamsa_Common_P0.GregorSamsa$0x24$main(<generated>)

And you think 'Who in gods name is Gregor Samsa'. And then you google and find this. Gregor Samsa is the central character of Kafka's 'The Metamorphasis'. Where a man turns into a bug. Hey - ten out of ten for humour here, but WTF?

Once you calm down and look at the source document. And find that there's a notesitem called '%PARENT% - which was put there by an errant piece of code from another process. And in fact, has always been there.

Its just that now DXL reports this instead of ignoring it. Hence the 'discovered check'. We fixed the item name so that it wasnt illegal, and it all works beautifully.

I guess the moral of the tale here is that if you see Gregor Samsa, you are truly in a maze of twisty little corridors, and you should investigate till your head hurts.