You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by "Chris Olin (JIRA)" <ji...@apache.org> on 2016/05/04 13:46:12 UTC

[jira] [Updated] (BATIK-1149) CSSLexicalUnit.getIntegerValue throws ISE when parsing RGB percentages

     [ https://issues.apache.org/jira/browse/BATIK-1149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Olin updated BATIK-1149:
------------------------------
    Description: 
*Synopsis*
Per http://www.w3schools.com/cssref/css_colors_legal.asp:
{quote}
RGB color values are supported in all major browsers.

An RGB color value is specified with: rgb(red, green, blue). Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255 or a percentage value (from 0% to 100%).

For example, the rgb(0,0,255) value is rendered as blue, because the blue parameter is set to its highest value (255) and the others are set to 0.

Also, the following values define equal color: rgb(0,0,255) and rgb(0%,0%,100%).
{quote}.
In batik-css-1.7 and 1.8, the CSSLexicalUnit.getIntegerValue method throws an IllegalStateException when defining the rgb value using percentages. Example code below:

{code}
<span style="color: rgb(10%,10%,80%)">foo</span>
{code}

*Additional info*
https://github.com/bobpaulin/owaspantisamy/issues/189

*Stack trace*
{noformat}
Caused by: java.lang.IllegalStateException
	at org.apache.batik.css.parser.CSSLexicalUnit.getIntegerValue(CSSLexicalUnit.java:119)
	at org.owasp.validator.css.CssValidator.lexicalValueToString(CssValidator.java:379)
	at org.owasp.validator.css.CssValidator.isValidProperty(CssValidator.java:98)
	at org.owasp.validator.css.CssHandler.property(CssHandler.java:484)
	at org.apache.batik.css.parser.Parser.parseStyleDeclaration(Parser.java:885)
	at org.apache.batik.css.parser.Parser.parseStyleDeclarationInternal(Parser.java:269)
	at org.apache.batik.css.parser.Parser.parseStyleDeclaration(Parser.java:1694)
	at org.owasp.validator.css.CssScanner.scanInlineStyle(CssScanner.java:204)
	at org.owasp.validator.html.scan.MagicSAXFilter.startElement(MagicSAXFilter.java:283)
	at org.cyberneko.html.HTMLTagBalancer.callStartElement(HTMLTagBalancer.java:1141)
	at org.cyberneko.html.HTMLTagBalancer.startElement(HTMLTagBalancer.java:746)
	at org.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(HTMLScanner.java:2701)
	at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2057)
	at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:917)
	at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
	at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
	at org.owasp.validator.html.scan.AntiSamySAXScanner.scan(AntiSamySAXScanner.java:126)
	... 213 more
{noformat}

  was:
*Synopsis*
Per http://www.w3schools.com/cssref/css_colors_legal.asp:
{quote}
RGB color values are supported in all major browsers.

An RGB color value is specified with: rgb(red, green, blue). Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255 or a percentage value (from 0% to 100%).

For example, the rgb(0,0,255) value is rendered as blue, because the blue parameter is set to its highest value (255) and the others are set to 0.

Also, the following values define equal color: rgb(0,0,255) and rgb(0%,0%,100%).
{quote}.
In batik-css-1.7 and 1.8, the CSSLexicalUnit.getIntegerValue method throws an IllegalStateException when defining the rgb value using percentages. Example code below:

{code}
<span style="color: rgb(10%,10%,80%)">foo</span>
{code}

*Additional info*
https://github.com/bobpaulin/owaspantisamy/issues/189


> CSSLexicalUnit.getIntegerValue throws ISE when parsing RGB percentages
> ----------------------------------------------------------------------
>
>                 Key: BATIK-1149
>                 URL: https://issues.apache.org/jira/browse/BATIK-1149
>             Project: Batik
>          Issue Type: Bug
>          Components: CSS
>    Affects Versions: 1.7, 1.8
>            Reporter: Chris Olin
>
> *Synopsis*
> Per http://www.w3schools.com/cssref/css_colors_legal.asp:
> {quote}
> RGB color values are supported in all major browsers.
> An RGB color value is specified with: rgb(red, green, blue). Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255 or a percentage value (from 0% to 100%).
> For example, the rgb(0,0,255) value is rendered as blue, because the blue parameter is set to its highest value (255) and the others are set to 0.
> Also, the following values define equal color: rgb(0,0,255) and rgb(0%,0%,100%).
> {quote}.
> In batik-css-1.7 and 1.8, the CSSLexicalUnit.getIntegerValue method throws an IllegalStateException when defining the rgb value using percentages. Example code below:
> {code}
> <span style="color: rgb(10%,10%,80%)">foo</span>
> {code}
> *Additional info*
> https://github.com/bobpaulin/owaspantisamy/issues/189
> *Stack trace*
> {noformat}
> Caused by: java.lang.IllegalStateException
> 	at org.apache.batik.css.parser.CSSLexicalUnit.getIntegerValue(CSSLexicalUnit.java:119)
> 	at org.owasp.validator.css.CssValidator.lexicalValueToString(CssValidator.java:379)
> 	at org.owasp.validator.css.CssValidator.isValidProperty(CssValidator.java:98)
> 	at org.owasp.validator.css.CssHandler.property(CssHandler.java:484)
> 	at org.apache.batik.css.parser.Parser.parseStyleDeclaration(Parser.java:885)
> 	at org.apache.batik.css.parser.Parser.parseStyleDeclarationInternal(Parser.java:269)
> 	at org.apache.batik.css.parser.Parser.parseStyleDeclaration(Parser.java:1694)
> 	at org.owasp.validator.css.CssScanner.scanInlineStyle(CssScanner.java:204)
> 	at org.owasp.validator.html.scan.MagicSAXFilter.startElement(MagicSAXFilter.java:283)
> 	at org.cyberneko.html.HTMLTagBalancer.callStartElement(HTMLTagBalancer.java:1141)
> 	at org.cyberneko.html.HTMLTagBalancer.startElement(HTMLTagBalancer.java:746)
> 	at org.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(HTMLScanner.java:2701)
> 	at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2057)
> 	at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:917)
> 	at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
> 	at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
> 	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> 	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> 	at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
> 	at org.owasp.validator.html.scan.AntiSamySAXScanner.scan(AntiSamySAXScanner.java:126)
> 	... 213 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-dev-help@xmlgraphics.apache.org