Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.StringIndexOutOfBoundsException: String index out of range #323

Open
bitcompiler opened this issue Apr 30, 2019 · 0 comments
Open

Comments

@bitcompiler
Copy link

bitcompiler commented Apr 30, 2019

The below code produce an error

java.lang.StringIndexOutOfBoundsException: String index out of range

HtmlCompressor compressor = new HtmlCompressor();

compressor.setEnabled(true); //if false all compression is off (default is true)
compressor.setRemoveComments(true); //if false keeps HTML comments (default is true)
compressor.setRemoveMultiSpaces(true); //if false keeps multiple whitespace characters (default is true)
compressor.setRemoveIntertagSpaces(true);//removes iter-tag whitespace characters
compressor.setRemoveQuotes(true); //removes unnecessary tag attribute quotes
compressor.setCompressCss(true); //compress css using Yahoo YUI Compressor
compressor.setCompressJavaScript(true); //compress js using Yahoo YUI Compressor
compressor.setYuiCssLineBreak(80); //--line-break param for Yahoo YUI Compressor
compressor.setYuiJsDisableOptimizations(true); //--disable-optimizations param for Yahoo YUI Compressor
compressor.setYuiJsLineBreak(-1); //--line-break param for Yahoo YUI Compressor
compressor.setYuiJsNoMunge(true); //--nomunge param for Yahoo YUI Compressor
compressor.setYuiJsPreserveAllSemiColons(true);//--preserve-semi param for Yahoo YUI Compressor

String str = "<html><body><p>Hover over the checkbox to simulate a mouse-click.</p><form><input type=\"checkbox\" id=\"myCheck\" onmouseover=\"myFunction()\" onclick=\"alert('click event occured')\"></form><script>function myFunction(){document.getElementById(\"myCheck\").click();}</script></body></html>";
System.out.println(compressor.compress(str));

If remove the <script> tag and its contents, then its working fine.
or
if comment 'compressor.setCompressJavaScript(true); ' this line, then its working fine.

pom.xml

<dependency>
            <groupId>com.googlecode.htmlcompressor</groupId>
            <artifactId>htmlcompressor</artifactId>
            <version>1.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.yahoo.platform.yui</groupId>
            <artifactId>yuicompressor</artifactId>
            <version>2.4.8</version>
        </dependency>

Spring Boot version: 2.1.4.RELEASE

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant