[ 
https://issues.apache.org/jira/browse/SLING-13260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18095614#comment-18095614
 ] 

Eric Norman commented on SLING-13260:
-------------------------------------

[~reschke] I think what happened here is that version 2.0.4 was already in the 
process of being released since June 5th.  So the 2 issues fixed after the 
release was started should have had the "Fix Version" set to the next version 
which would be 2.0.6.  Perhaps the release instructions should be amended to do 
the Jira "create a new version X.Y.Z+2" step when the vote is started so fixes 
after that date are not accidentally assigned to the wrong fix version?

> Using a String instead of StandardCharset to instantiante strings requires a 
> lock 
> ----------------------------------------------------------------------------------
>
>                 Key: SLING-13260
>                 URL: https://issues.apache.org/jira/browse/SLING-13260
>             Project: Sling
>          Issue Type: Improvement
>          Components: ResourceResolver
>            Reporter: Patrique Legault
>            Assignee: Julian Reschke
>            Priority: Minor
>             Fix For: Resource Resolver 2.0.4
>
>
> Under heavy load we see many threads locking with the following pattern [1].
> This happens because the 
> [URI|https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/helper/URI.java#L4022]
>  class passes a String for the Charset, this results in the String class 
> calling 
> java.lang.String.[lookup|https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/String.java#L1662-L1665]
>  which locks in order to perform the lookup.
> A simple enhancement is to pass the Charset as such to prevent the 
> [lookup|https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/String.java#L1690-L1692].
>  
> [1]
> {code:java}
> java.lang.Thread.State: BLOCKED (on object monitor)
>  at 
> sun.nio.cs.StandardCharsets.charsetForName([email protected]/StandardCharsets.java:1304)
>  - waiting to lock <0x000000041005a680> (a sun.nio.cs.StandardCharsets)
>  at java.nio.charset.Charset.lookup2([email protected]/Charset.java:486)
>  at java.nio.charset.Charset.lookup([email protected]/Charset.java:475)
>  at java.nio.charset.Charset.forName([email protected]/Charset.java:539)
>  at java.lang.String.lookupCharset([email protected]/String.java:848)
>  at java.lang.String.<init>([email protected]/String.java:1390)
>  at 
> org.apache.sling.resourceresolver.impl.helper.URI.getAsciiString(URI.java:4022)
>  at org.apache.sling.resourceresolver.impl.helper.URI.encode(URI.java:1776)
>  at org.apache.sling.resourceresolver.impl.helper.URI.setPath(URI.java:2938)
>  at 
> org.apache.sling.resourceresolver.impl.helper.URI.parseUriReference(URI.java:2118)
>  
> ....{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to