« Why XPINC sucks | Main| Preparing for Lotusphere 2012 »

Using Nested Subforms can Crash Designer

QuickImage Category Bitching Lotus Technical

While trying to help me figure out a PIA problem with DDE yesterday, one of my co-workers found this on IBM's site: IBM LO58909.

Yes, you read it correctly. Using nested subforms can crash DDE. Wow. I don't know about you, but to me, this is a big deal. If you think it is a big deal to IBM, and that perhaps they have top men working on it right now, you are sadly mistaken:

Problem conclusion
A programming error was found but will not be corrected. It will be a permanent restriction.

Very interesting. This isn't a big enough deal for IBM to bother fixing. It is their product after all, and they do have limited resources. If they're not going to fix this bug then there must be a simple work around, right? Wrong again:

Local Fix
Do not use nested subforms.


<bitching>

Whaaaat? They can't be serious, can they? Do not use nested subforms.
Wow.......I am just....stunned.

Perhaps I'm wrong. Perhaps this just isn't that big of a deal. Perhaps I'm just overreacting. Perhaps I'm the only developer out there who uses nested subforms on a regular basis. Perhaps using this technique is a newbie mistake. I've only been a Notes developer for 16 years -weaning myself from nested subforms must be something that just comes with experience.

Effectively ceasing all maintenance development on thousands of production applications can't be that big of a deal, right?


</bitching>
<doing>

    For those of you who do use nested subforms, I offer the following options:

  1. Freeze the design of all your existing applications. Do not use nested subforms for all future development. Tell your users that their existing applications must remain as they are, and that no future enhancements will occur. Your users will probably complain, but who cares what users want?
  2. Migrate everything to XPages. XPages rock and are awesome! Everything else ever created sucks and should be replaced anyway. Start planning your migration now. Your users will love the new UI, and I will appreciate your consulting dollars. --Seriously though: if you are considering migrating to XPages then do yourself a favor and find out how we can help.
  3. Do not use nested subforms. This means changing your current development patterns, re-working all templates for future development, and completely re-developing any existing applications you have. I realize this is not going to be popular and may cost hundreds of thousands of dollars, but it is the IBM recommended Local Fix.
  4. Use computed subforms. Yes this is a PIA and involves very similar effort to the previous option, but it avoids a complete re-design of pretty much every form and subform in your arsenal. Instead of actually embedding the nested subform(s), use a computed subform formula. The up side of this is that DDE won't crash. The down side is that your application will now run slower than before, but who cares about performance?
  5. Downgrade to an older version of DDE. I do almost all of my development in VMs, and very rarely need to "bust out DDE" on my main work environment. So I can use the latest / greatest Notes Client for my non-development work, and then fire up a VM with version of Notes installed appropriate for that development engagement. This allows me to effectively support any client who might still be using older (even really older) versions of Notes. Replication and design refresh still work just fine. The only real down side with this solution is the licensing costs for the various clients and OS installations for all of the VMs. This solution -while not optimum, will work. Unless of course you want to work on an NSF that uses both XPages and Nested Subforms. In that case you're screwed.
</doing>

-Devin

Comments

Gravatar Image1 - Never have I seen a company try so damn hard to sabotage their own product.

Rats, I think I use these in the Sessions db. The one that now has XPages. Argh!

Gravatar Image2 - "Local Fix - Do not use nested subforms."

Wow! That is unbelieveable! Will you be bringing this up at Ask the Developers?

BTW, I think you need to change that <doing> tag to <bitchingANDdoing>
Emoticon

Dan

Gravatar Image3 - @Dan -lol. Yes that will be my first question for "Ask the Developers"; which will be followed by "Are you people smoking crack?"

Emoticon "Do not use nested subfoms" - absolutely maddening.

Gravatar Image4 - LOL, just don't use Domino Designer and you should be good.

Gravatar Image5 - Well, I've been using DDE 8.5.2 and nested subforms pretty regularly in recent months and have not been crashing routinely. Wondering if it only occurs when you go a certain number of levels deep, or when some other conditions are in play.

Taking the technote at face value this is certainly unacceptable.

Gravatar Image6 - Just use Notepad to hand edit DXL and then import it back in.

Oh. Except that the DXL import might crash. Sorry, never mind.

Still a bit taken aback that they know it's a bug, and know why it's a bug, but have decided they're just not going to fix it. In their defense, though, I can see why they might not consider it a priority... subforms have essentially been a legacy feature for three years now.

Gravatar Image7 - I checked the referenced SPR, and it is closed as 'no plans to fix' in the 8.5.x code stream.
Unfortunately the SPR was incorrectly categorized and was not actually assigned to the Domino Designer team. We do operate as a part of a large team (Notes/Domino/Admin/Designer) so unfortunately sometimes issues that come in from the field are miscategorized and can sometimes be closed out without the correct people viewing the issue. That was the case here. It should not happen, inevitably some issues do fall through the cracks. I reassigned it back to the Designer team.
However, looking at the SPR history, the issue was first reported against Domino Designer 7.0 (yes, 7.0 - 2005). At that time a crash stack was provided. The issue has been reported to IBM support twice since then. So in 6.5 years this has been reported to support three times. The stack provided is not conclusive, so it is not obvious where this failure is occurring. If you have experienced this issue I would urge you to call support, as it is a lot easier to justify spending time on issues if there is customer 'weight' behind them. As it currently stands there is a minimal amount of 'weight' on this issue.
We understand that subforms are important, and if this is a widely reproducible (or even reproducible) issue we will certainly look at fixing it. But judging from the development comments in the SPR history this bug has been difficult to reproduce, so I do suspect that it is a far more intermittent problem than the support APAR would leave you to believe?

Gravatar Image8 - @Dan - DUDE! You are awesome for jumping on this the way you have.

Yes, I can reproduce the issue. I will contact "my people" and have them contact "your people" so we can get some weight behind this.

Gravatar Image9 - @Devin. No problem - please make sure to supply NSDs. In at least one of the reports we received there was no NSD info so it makes it very difficult to determine where the crash occurred. Please also include a sample nsf where the issue is reproducible (just in case 'my people' forget to ask for it Emoticon )..
Have a good one!

Gravatar Image10 - Devin, I recall one Byzantine bug with Designer in the 7.x timeframe that might be in play here.

Any chance any of the relevant subforms might have an "InputEnabled" formula on them? That particular control has some "issues". Emoticon

Gravatar Image11 - Now that it's clear that it was closed by mistake you can bring this one up in Ask the Developers instead: { Link }

Briefly: expandLevel property in a view control in XPages doesn't work properly.

The masterminds came up with this local fix and apparently that's it.

Local fix:

Remove any one of these three factors:

- The readers fields from the documents.
- The "Don't show empty categories" property from the view.
- The 'expandLevel' property from the view control.

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::banghead;:cool::cry::emb::grin::huh::laugh::lips::rolleyes::sniper:;-)

Search

Wowsers! A Tag Cloud!

Links

MiscLinks