IBMStockTrader / trader

UI microservice for the Stock Trader app
Apache License 2.0
24 stars 63 forks source link

Trader does not handle NULL from Broker #25

Closed CC9759 closed 8 months ago

CC9759 commented 1 year ago

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]
jwalcorn commented 8 months ago

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.