Bug 1412177

Summary: Empty lines in kickstart content cause ISE 500
Product: Red Hat Satellite 5 Reporter: Pavel Studeník <pstudeni>
Component: WebUIAssignee: Gennadii Altukhov <galtukho>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Korbel <mkorbel>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 580CC: galtukho, mkorbel, tlestach
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: spacewalk-java-2.5.14-54-sat Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-21 12:14:27 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: 1358815    

Description Pavel Studeník 2017-01-11 13:13:22 UTC
Description of problem:
Kickstart (which contains only blank lines in file content) causes ISE 500. I am not sure that empty kickstart is correct, but ISE is wrong behaviour. I should receive some warning message withou ISE.

Version-Release number of selected component (if applicable):
always

How reproducible:
spacewalk-java-2.5.14-42.el6sat.noarch

Steps to Reproduce:
1. create or update kickstart profile /rhn/kickstart/AdvancedModeCreate.do
2. fill empty lines "\n" to "File Contents" (only press sometimes enter without other chars.
3. receive ISE 500

Actual results:

2017-01-11 14:56:50,170 [TP-Processor5] WARN  org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class java.lang.IndexOutOfBoundsException
2017-01-11 14:56:50,170 [TP-Processor5] ERROR com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction. Rolling back
javax.servlet.ServletException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
        at com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:105)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
...
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:785)
Caused by:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.LinkedList.checkElementIndex(LinkedList.java:566)
        at java.util.LinkedList.get(LinkedList.java:487)
        at com.redhat.rhn.domain.kickstart.builder.KickstartParser.storeSection(KickstartParser.java:119)
        at com.redhat.rhn.domain.kickstart.builder.KickstartParser.<init>(KickstartParser.java:58)
        at com.redhat.rhn.frontend.action.kickstart.AdvancedModeDetailsAction.submit(AdvancedModeDetailsAction.java:183)
        at com.redhat.rhn.frontend.action.kickstart.AdvancedModeDetailsAction.execute(AdvancedModeDetailsAction.java:111)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
        ... 40 more


Expected results:
without ISE 500

Comment 1 Gennadii Altukhov 2017-01-12 15:05:09 UTC
patch is available in upstream. spacewalk.git:
4b8494f70dc9786b59362218b37f95f88bf92048

Comment 4 Martin Korbel 2017-05-11 06:32:13 UTC
VERIFIED on spacewalk-java-2.5.14-77 (Satellite-5.8-RHEL-6-20170504.n.0)

Reproducer by comment 0.