The Codeless Code: Case 152 What Lies Beneath
======
Though previously inseparable, the roommates Yíwen and
Hwídah now only crossed paths occasionally, for Yíwen’s
spare hours were occupied with the making of a peculiar
scarf. So the restless Hwídah had taken to exploring those
few parts of the Temple grounds still unknown to her.
Her wanderings led her to the halls of the abbey where
dwelled the Clan of the Wolf's Bitter Breath, the
black-robed monks who performed all Temple’s integration
testing. Developers were forbidden to trespass in this
place, though Hwídah had never been told why, and like all
mysteries this one gnawed at her. She lurked in the shadows
outside doorways and below cubicle partitions, hoping to
learn some shocking Temple secret, but all she ever
overheard from the black-robed monks within were loud jests
at the expense of those developers whose code was defective.
Most of these developers were of the Spider Clan, Hwídah’s
own.
“It is most infuriating,” she heard one Bitter Breath monk
complaining. “I have selected an Order Status of ‘Unknown’,
submitted the form, and all appears well. Yet when I return
to the form there is a validation error complaining of an
illegal Order Status. And the developer swears that he has
made no changes to this page!”
“Thus is it always with the Spiders,” sighed another voice.
“If anything comes too near, they wrap it in eight layers of
Javascript, cripple its responsiveness, suck out its
usefulness, and declare that the twitching corpse is a job
well done.”
Their laughter followed Hwídah as she crept towards the
abbey door. This, I shall surely investigate, she thought,
her fists clenched.
Later that day Hwídah approached Java master Banzen, with
the fire of righteous indignation in her eyes and a printout
in her hands.
“This defect was created by a monk of the Elephant's
Footprint Clan, not ours. He rewrote the method which turns
each database row into an object, and his new code contains
this...” Here she stabbed her finger at a line which read:
order.setStatusCode(rs.getInt(STATUS_CODE));
“Ah,” said Banzen. “I have seen such errors many times
before. The statusCode property is Integer-valued to allow
it to hold a null. But in the JDBC API, getInt returns the
primitive int type and silently coerces a database NULL to a
zero. This zero is silently autoboxed by setStatusCode and
returned by getStatusCode when the form is populated. And
since there is no Order Status of zero, a valid database row
will appear to be invalid.”
“What correction for the monk of Elephant’s Footprint?”
asked Hwídah.
“Nothing lethal,” said Banzen. “My usual punishment involves
a boat which I keep in the south gorge for just such an
occasion. The monk will emerge bruised and damp, and in the
future he will examine his oars and his APIs a little more
critically before using them.”
Hwídah’s face turned scarlet. “But what of the honor of
Spider Clan? The monks of the Wolf’s Bitter Breath mock us
openly in their abbey because of this!” Then she froze,
realizing that she had revealed her trespass onto forbidden
ground, but Banzen only sighed.
“The true fault lies with the authors of the venerable JDBC
API, and with every maintainer since,” said the master.
“They gave the monk a well-used rowboat, with sturdy oars
already mounted in the oarlocks. Shall we doom him merely
for not noticing that the left oar was too short? No... the
dunking he receives when the boat spins in the rapids will
suffice.”
Hwídah bit her lip, bowed respectfully, and turned to leave.
“Little nun,” said Banzen, raising his index finger to stop
her. “The defect is not mine, and I cannot prevent the
errors it engenders. Thus I use both defect and error to
serve a greater purpose.”
At the evening meal Yíwen was not to be found, but Hwídah
spied Banzen’s two young apprentices, Djishin and Satou,
sitting together. The pair agreed to hear her complaints
against their master.
“Banzen seems determined to suffer this same error being
made until the end of time!” concluded Hwídah in
exasperation. “We should give the Elephant’s Footprint a
better boat!”
“Indeed!” said Satou. “When I learned of this error, I
begged the master to switch to a popular ORM framework. Yet
refactoring has its costs, and every tool has its perils, so
the low-level code remains.”
“Then we should provide a left oar of our own!” said Hwídah.
“Indeed!” said Djishin. “When I learned of this error, I
authored a suitable getInteger utility method. Yet
developers will only seek out what they think they need, and
what they know to look for, so the utility goes unused.”
Hwídah sank in despair. “So the monk of Elephant’s Footprint
is barely corrected, and the monk of the Wolf’s Bitter
Breath is not corrected at all. At least miserable Hwídah
has been corrected, for now I understand why it is forbidden
to enter the Wolf’s Den, and that is to maintain harmony
between our clans. An insult can only become a grievance if
it is overheard.”
Djishin said, “You perceive the shafts of the oars above the
water, but your true course has been determined by what lies
beneath.”
Satou continued, “Our master knows you violated the edict:
this much he has told us freely. But the edict is not his,
and he cannot prevent it from being violated by the
irrepressibly curious. Thus he uses both the edict and its
violations for a greater purpose.”
Satou put a companionable arm around Hwídah. “Enjoy your
meal, sister of the Spider Clan! For I fear that Hwídah’s
correction is just beginning...”