Buggy code:
public class VelvetFeatureModelReader extends AbstractFeatureModelReader { private static class ConstraintNode { private final Node computedNode ; private final Tree rawNode ; public ConstraintNode ( Node computedNode , Tree rawNode ) { } } private static final int [ ] binaryOperators = new int [ ] { VelvetParser . OP_OR , VelvetParser . OP_AND , VelvetParser . OP_XOR , VelvetParser . OP_IMPLIES , VelvetParser . OP_EQUIVALENT } ; private static final String [ ] paths = new String [ ] { "%s.velvet" , "%s.xml" , "MPL//%s.velvet" } ; private final LinkedList < Tree > atrributeConstraintNodes = new LinkedList < Tree > ( ) ; private final LinkedList < Feature > parentStack = new LinkedList < Feature > ( ) ; private final LinkedList < VelvetFeatureModelReader . ConstraintNode > constraintNodeList = new LinkedList < VelvetFeatureModelReader . ConstraintNode > ( ) ; private final HashSet < String > usedVariables = new HashSet < String > ( ) ; private final boolean velvetImport ; private ModelMarkerHandler modelMarkerHandler ; private ExtendedFeatureModel extFeatureModel ; private String extFeatureModelName ; private boolean localSearch = false ; private FeatureModel readExternalModelFile ( File file ) { } private boolean checkExternalModelFile ( Tree curNode ) { } private boolean checkInterfaceModelFile ( Tree curNode ) { } private void copyChildnodes ( final ExtendedFeatureModel targetModel , final Feature targetParentNode , final Feature sourceParentNode , final String parentModelName , final String parentNodeName , final int type ) { } private static WeightedTerm createTerm ( final int weight , final boolean rightSide , final boolean minus , final Reference reference ) { } private static LinkedList < Tree > getChildren ( final Tree root ) { } private static void updateConstraintNode ( Node curNode , String parentModelname , String rootName ) { } public VelvetFeatureModelReader ( final FeatureModel featureModel ) { } public VelvetFeatureModelReader ( final FeatureModel featureModel , boolean velvetImport ) { } @ Override protected synchronized void parseInputStream ( final InputStream inputStream ) throws UnsupportedModelException { } private ExtendedFeature addFeature ( final Feature parent , final String featureName , final boolean isMandatory , final boolean isAbstract , final boolean isHidden ) { } private String checkNode ( Node curNode ) { } private FeatureModel getExternalFeatureModel ( Tree curNode ) { } private FeatureModel getExternalFeatureModel ( String modelName , Tree curNode ) { } private FeatureModel getInterfaceFeatureModel ( String modelName , Tree curNode ) { } private FeatureModel readModel ( File modelFile , Tree curNode ) { } private File getExternalModelFile ( String name ) { } private File getInterfaceModelFile ( String name ) { } private File localSearch ( final String name ) { } private IProject getProject ( ) { } private void init ( ) { } private void parseAttribute ( final Tree root , final Feature parent ) throws RecognitionException { } private void parseAttributeConstraints ( ) throws UnsupportedModelException , RecognitionException { } private void parseConcept ( final Tree root ) throws RecognitionException { } private void parseConstraint ( final Tree root , final Feature parent ) throws RecognitionException { } private Node parseConstraint_rec ( final Tree root ) throws RecognitionException { } private void parseDefinitions ( final Tree root ) throws RecognitionException { } private void parseDescription ( Tree root , Feature parent ) throws RecognitionException { final LinkedList < Tree > nodeList = VelvetFeatureModelReader . getChildren ( root ) ; final Tree valueNode = nodeList . poll ( ) ; switch ( valueNode . getType ( ) ) { case VelvetParser . STRING : final String valueNodeText = valueNode . getText ( ) ; <START_BUG> parent . setDescription ( valueNodeText . substring ( 1 , ( ( valueNodeText . length ( ) ) - 1 ) ) ) ; <END_BUG> break ; default : reportSyntaxError ( valueNode ) ; } } private void parseFeature ( final Tree root , Feature parent ) throws RecognitionException { } private void parseFeatureGroup ( final Tree root , final Feature parent ) throws RecognitionException { } private void parseInheritance ( final Tree root ) throws RecognitionException { } private void addExternalFeatures ( FeatureModel sourceModel , String sourceModelName , Feature targetParentFeature , int type ) { } private void parseInterfaceImport ( final Tree root ) throws RecognitionException { } private void parseInstanceImport ( final Tree root ) throws RecognitionException { } private void parseModel ( final Tree root ) throws RecognitionException { } private void parseUse ( Tree root , Feature parent ) throws RecognitionException { } private void reportWarning ( Tree curNode , String message ) { } private Tree checkTree ( Tree root ) throws RecognitionException { } private void reportSyntaxError ( Tree curNode ) throws RecognitionException { } private void throwException ( RecognitionException e , Tree curNode ) throws RecognitionException { } }

Fix:
parent . setDescription ( valueNodeText . substring ( 1 , ( ( valueNodeText . length ( ) ) - 1 ) ) . replace ( "\\\"" , "\"" ) ) ;