IBMStockTrader/trader

Trader does not handle NULL from Broker

Closed this issue · 1 comments

When the DB is inaccessible/missing/misnamed, Broker takes in a null value and Trader does not check. As a result Trader errors out and the website redirects to the error message:
Error 500: java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
rather than a more user-friendly view.

The source of the problem should be from summary.jsp where broker is called. It returns a NULL value that isn't checked and will error out the program.

Trader's Log:

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[INFO    ] FFDC1015I: An FFDC Incident has been created: "java.lang.NullPointerException: Cannot read the array length because "<local6>" is null com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters 1105" at ffdc_23.01.18_14.49.23.0.log
[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

[ERROR   ] SRVE0777E: Exception thrown by application class 'com.ibm._jsp._summary._jspService:135'
java.lang.NullPointerException: Cannot read the array length because "<local6>" is null
	at com.ibm._jsp._summary._jspService(_summary.java:135)
	at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:100)
	at [internal classes]
	at com.ibm.hybrid.cloud.sample.stocktrader.trader.Summary.doGet(Summary.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at [internal classes]

Fixed this a long time ago (I believe by merging a PR that Celina submitted). Just forgot to close out this issue at that time.