Bug 1350757

Summary: (6.4.z) StringIndexOutOfBoundsException throw while formatting log
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Szczepan Kuzniarz <skuzniarz>
Component: LoggingAssignee: Fedor Gavrilov <fgavrilo>
Status: CLOSED CURRENTRELEASE QA Contact: Jiří Bílek <jbilek>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.4.7CC: bmaxwell, fgavrilo, jbilek, jperkins, rstancel, skuzniarz
Target Milestone: CR1   
Target Release: EAP 6.4.16   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-22 09:24:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1434495, 1441888    

Description Szczepan Kuzniarz 2016-06-28 10:05:58 UTC
When value in left-justified field is longer than maximum width following exception is thrown:

java.lang.StringIndexOutOfBoundsException
        at java.lang.AbstractStringBuilder.delete(AbstractStringBuilder.java:733)
        at java.lang.StringBuilder.delete(StringBuilder.java:244)
        at org.jboss.logmanager.formatters.Formatters$JustifyingFormatStep.render(Formatters.java:212)
        at org.jboss.logmanager.formatters.MultistepFormatter.format(MultistepFormatter.java:83)
        at org.jboss.logmanager.ExtFormatter.format(ExtFormatter.java:32)
        at org.jboss.logmanager.handlers.WriterHandler.doPublish(WriterHandler.java:46)
        at org.jboss.logmanager.ExtHandler.publish(ExtHandler.java:76)
        at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:302)
        at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:310)
        at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:310)
        at org.jboss.logmanager.LoggerNode.publish(LoggerNode.java:310)
        at org.jboss.logmanager.Logger.logRaw(Logger.java:719)
        at org.jboss.logmanager.Logger.log(Logger.java:670)
        at org.jboss.logging.JBossLogManagerLogger.doLogf(JBossLogManagerLogger.java:50)
        at org.jboss.logging.Logger.logf(Logger.java:2096)


Steps to Reproduce:

1. Configure formatter with left-justified field with maximum width:

/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=formatter,value="%d{HH:mm:ss,SSS} %-5p [%c{1.}] [%-20.-20t] %s%E%n")

(in the example above thread name should be truncated to 20 characters, left-justified)

2. Write a log from a thread which has a name containg 21 characters or more. During server startup logs are written by "MSC service thread 1-7" thread.


Actual results:

Exception is thrown.


Expected results:

Formatted log written.


Additional info:

It seems there is an error in org.jboss.logmanager.formatters.Formatters () class, line 212. There is:

builder.delete(oldLen, overflow + 1);

but should be:

builder.delete(oldLen, oldLen + overflow);

Comment 4 Jiří Bílek 2017-06-06 08:29:02 UTC
Verified with EAP 6.4.16.CP.CR1

Comment 5 Petr Penicka 2017-06-22 09:24:47 UTC
Released on June 20 2017 as part of the EAP 6.4.16 maintenance release.