Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000156Rosetta[All Projects] Bad Codingpublic2012-12-01 16:512013-03-07 15:50
Assigned To 
PlatformAll platformsOSAnyOS VersionAny
Product VersionTrunk 
Fixed in Version 
Summary0000156: Missing show() methods on Constraints
DescriptionWhen a constraint (like PocketConstraint) which does not implement the show() method is used in a situation which results in a pose length change (such as adding a virtual root in constrained relax protocols) Rosetta dies with an error. This is because ConstraintSet::get_all_constraints() invokes the contained constraints' show() method.

cf. [^]
Steps To ReproduceUse a constraint file with a Pocket constraint (or other constraint not implementing show()) with a constrained relax protocol.
Additional InformationThe base constraint implementation has a lot of stubbed-out functions, making it very easy to skip the implementation, resulting in these strange crashes. It might be worth thinking about converting (some of) them to pure virtual methods to ensure they are properly implemented in derived classes.
TagsNo tags attached.
Application(s) Affectedrelax, others using constraints
Command Line Usedrelax.linuxgccrelease -s pdb.pdb -native native.pdb -cst_fa_file cst.txt -relax:constrain_relax_to_native_coords
Developer Options
Fixed in SVN Version
Attached Files

- Relationships
related to 0000201assignedLabonte Show() methods are missing for a large number of classes 

-  Notes
smlewis (Administrator)
2012-12-03 10:58

These functions are not pure virtual because the function was added to the base class interface AFTER the first round of derived classes were already in use. Whoever wrote the new base class interface didn't want to/couldn't go writing show() for all the other constraint classes in already in existence (I had a similar experience adding functions to Mover for JD2).

This is an ideal candidate for, maybe not XRW3, but some community-sponsored code cleanup event. If we had a working afternoon at the developer meeting it could probably be finished within that time by a group of 5 people.

I think this is one of those software design anti-patterns.

- Issue History
Date Modified Username Field Change
2012-12-01 16:51 rmoretti New Issue
2012-12-03 10:58 smlewis Note Added: 0000130
2013-03-01 12:24 smlewis Description Updated View Revisions
2013-03-07 15:50 Labonte Relationship added related to 0000201

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker