[ https://issues.apache.org/jira/browse/TOBAGO-1390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Udo Schnurpfeil resolved TOBAGO-1390. ------------------------------------- Resolution: Fixed > "Can't parse to any measure" > ---------------------------- > > Key: TOBAGO-1390 > URL: https://issues.apache.org/jira/browse/TOBAGO-1390 > Project: MyFaces Tobago > Issue Type: Bug > Components: Core > Affects Versions: 2.0.0-beta-2 > Environment: Firefox 28.0 > Reporter: Bernhard Stadler > Assignee: Udo Schnurpfeil > Fix For: 2.0.0-beta-3 > > > In our application, there are frequent occurences of > IllegalArgumentExceptions in org.apache.myfaces.tobago.layout.Measure line > 79 (function valueOf(String)), which is being called by > org.apache.myfaces.tobago.renderkit.PageRendererBase line 86 (function > decodePageState(FacesContext, AbstractUIPage)). > I wasn't able to create a reproducing example, but I have been able to > isolate the conditions and causes under which this happens in our application: > Apparently it is caused by JavaScript code (tobago.js, storeClientDimension) > sending decimal values (e.g. "1298.4px") as positions or dimensions. > Measure.valueOf only checks whether the String received ends with "px" and > removes it if necessary, but doesn't have any means to handle decimals. > In the JavaScript code, I found out that the non-integer value stems from the > following lines in function augmentWidthOrHeight( elem, name, extra, > isBorderBox, styles ) in jquery-1.10.2.js: > {code} > // at this point, extra isn't border nor margin, so remove border > if ( extra !== "margin" ) { > val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles > ); > } > {code} > Removing the following lines from our CSS file seems to stop the errors from > occurring: > {code} > .tobago-page { > width: 90%; > height: 99%; > // ... > } > {code} > I'm not sure whether this is a correct use of CSS but I guess it shouldn't > cause a RuntimeException, especially as it is caused by unsanitized client > data. > I don't know what the best course of action might be: > a) Change the JavaScript code to remove decimal places > b) Change Measure to remove decimal places > c) Change Measure to actually store decimals instead of integers -- This message was sent by Atlassian JIRA (v6.2#6252)