Buggy code:
public class JBossContextConfig extends ContextConfig { private static Logger log = Logger . getLogger ( JBossContextConfig . class ) ; private DeploymentUnit deploymentUnitContext = null ; private Set < String > overlays = new HashSet < String > ( ) ; public JBossContextConfig ( DeploymentUnit deploymentUnitContext ) { } public void lifecycleEvent ( LifecycleEvent event ) { } protected void applicationWebConfig ( ) { } protected void defaultWebConfig ( ) { } protected void processJBossWebMetaData ( JBossWebMetaData metaData ) { } protected Object getInstance ( String className , List < ParamValueMetaData > params ) { } protected void processWebMetaData ( JBossWebMetaData metaData ) { } protected void init ( ) { } protected void destroy ( ) { } protected void applicationTldConfig ( ) { } protected void processTld ( ArrayList < TagLibraryInfo > tagLibraries , String location , TldMetaData tldMetaData ) { String relativeLocation = location ; String jarPath = null ; <START_BUG> if ( relativeLocation . startsWith ( "//WEB-INF//lib//" ) ) { <END_BUG> int pos = relativeLocation . indexOf ( '//' , "//WEB-INF//lib//" . length ( ) ) ; if ( pos > 0 ) { jarPath = relativeLocation . substring ( pos ) ; if ( jarPath . startsWith ( "//" ) ) { jarPath = jarPath . substring ( 1 ) ; } relativeLocation = relativeLocation . substring ( 0 , pos ) ; } } TagLibraryInfo tagLibraryInfo = new TagLibraryInfo ( ) ; tagLibraryInfo . setTlibversion ( tldMetaData . getTlibVersion ( ) ) ; if ( ( tldMetaData . getJspVersion ( ) ) == null ) tagLibraryInfo . setJspversion ( tldMetaData . getVersion ( ) ) ; else tagLibraryInfo . setJspversion ( tldMetaData . getJspVersion ( ) ) ; tagLibraryInfo . setShortname ( tldMetaData . getShortName ( ) ) ; tagLibraryInfo . setUri ( tldMetaData . getUri ( ) ) ; if ( ( tldMetaData . getDescriptionGroup ( ) ) != null ) { tagLibraryInfo . setInfo ( tldMetaData . getDescriptionGroup ( ) . getDescription ( ) ) ; } if ( ( tldMetaData . getListeners ( ) ) != null ) { for ( ListenerMetaData listener : tldMetaData . getListeners ( ) ) { tagLibraryInfo . addListener ( listener . getListenerClass ( ) ) ; } } if ( ( tldMetaData . getValidator ( ) ) != null ) { TagLibraryValidatorInfo tagLibraryValidatorInfo = new TagLibraryValidatorInfo ( ) ; tagLibraryValidatorInfo . setValidatorClass ( tldMetaData . getValidator ( ) . getValidatorClass ( ) ) ; if ( ( tldMetaData . getValidator ( ) . getInitParams ( ) ) != null ) { for ( ParamValueMetaData paramValueMetaData : tldMetaData . getValidator ( ) . getInitParams ( ) ) { tagLibraryValidatorInfo . addInitParam ( paramValueMetaData . getParamName ( ) , paramValueMetaData . getParamValue ( ) ) ; } } tagLibraryInfo . setValidator ( tagLibraryValidatorInfo ) ; } if ( ( tldMetaData . getTags ( ) ) != null ) { for ( TagMetaData tagMetaData : tldMetaData . getTags ( ) ) { TagInfo tagInfo = new TagInfo ( ) ; tagInfo . setTagName ( tagMetaData . getName ( ) ) ; tagInfo . setTagClassName ( tagMetaData . getTagClass ( ) ) ; tagInfo . setTagExtraInfo ( tagMetaData . getTeiClass ( ) ) ; if ( ( tagMetaData . getBodyContent ( ) ) != null ) tagInfo . setBodyContent ( tagMetaData . getBodyContent ( ) . toString ( ) ) ; tagInfo . setDynamicAttributes ( tagMetaData . getDynamicAttributes ( ) ) ; if ( ( tagMetaData . getDescriptionGroup ( ) ) != null ) { DescriptionGroupMetaData descriptionGroup = tagMetaData . getDescriptionGroup ( ) ; if ( ( ( ( descriptionGroup . getIcons ( ) ) != null ) && ( ( descriptionGroup . getIcons ( ) . value ( ) ) != null ) ) && ( ( descriptionGroup . getIcons ( ) . value ( ) . length ) > 0 ) ) { Icon icon = descriptionGroup . getIcons ( ) . value ( ) [ 0 ] ; tagInfo . setLargeIcon ( icon . largeIcon ( ) ) ; tagInfo . setSmallIcon ( icon . smallIcon ( ) ) ; } tagInfo . setInfoString ( descriptionGroup . getDescription ( ) ) ; tagInfo . setDisplayName ( descriptionGroup . getDisplayName ( ) ) ; } if ( ( tagMetaData . getVariables ( ) ) != null ) { for ( VariableMetaData variableMetaData : tagMetaData . getVariables ( ) ) { TagVariableInfo tagVariableInfo = new TagVariableInfo ( ) ; tagVariableInfo . setNameGiven ( variableMetaData . getNameGiven ( ) ) ; tagVariableInfo . setNameFromAttribute ( variableMetaData . getNameFromAttribute ( ) ) ; tagVariableInfo . setClassName ( variableMetaData . getVariableClass ( ) ) ; tagVariableInfo . setDeclare ( variableMetaData . getDeclare ( ) ) ; if ( ( variableMetaData . getScope ( ) ) != null ) tagVariableInfo . setScope ( variableMetaData . getScope ( ) . toString ( ) ) ; tagInfo . addTagVariableInfo ( tagVariableInfo ) ; } } if ( ( tagMetaData . getAttributes ( ) ) != null ) { for ( AttributeMetaData attributeMetaData : tagMetaData . getAttributes ( ) ) { TagAttributeInfo tagAttributeInfo = new TagAttributeInfo ( ) ; tagAttributeInfo . setName ( attributeMetaData . getName ( ) ) ; tagAttributeInfo . setType ( attributeMetaData . getType ( ) ) ; tagAttributeInfo . setReqTime ( attributeMetaData . getRtexprvalue ( ) ) ; tagAttributeInfo . setRequired ( attributeMetaData . getRequired ( ) ) ; tagAttributeInfo . setFragment ( attributeMetaData . getFragment ( ) ) ; if ( ( attributeMetaData . getDeferredValue ( ) ) != null ) { tagAttributeInfo . setDeferredValue ( "true" ) ; tagAttributeInfo . setExpectedTypeName ( attributeMetaData . getDeferredValue ( ) . getType ( ) ) ; } else { tagAttributeInfo . setDeferredValue ( "false" ) ; } if ( ( attributeMetaData . getDeferredMethod ( ) ) != null ) { tagAttributeInfo . setDeferredMethod ( "true" ) ; tagAttributeInfo . setMethodSignature ( attributeMetaData . getDeferredMethod ( ) . getMethodSignature ( ) ) ; } else { tagAttributeInfo . setDeferredMethod ( "false" ) ;

Fix:
if ( ( relativeLocation != null ) && ( relativeLocation . startsWith ( "//WEB-INF//lib//" ) ) ) {