Skip to Content
Jun 26, 2014 at 11:46 AM

Access via 'NULL' object reference not possible Error in WD application execution



I am getting following error for web dynpro application intermittently, please find following error log:

What happened?
Error in the ABAP Application Program

The current ABAP program "CL_SALV_WD_C_TABLE_V_TABLE====CP" had to be
terminated because it has
come across a statement that unfortunately cannot be executed.

Error analysis

An exception occurred that is explained in detail below.

The exception, which is assigned to class 'CX_SY_REF_IS_INITIAL', was not

caught in


nor was it propagated by a RAISING clause.

Since the caller of the procedure could not have anticipated that the

exception would occur, the current program is terminated.

The reason for the exception is:

You attempted to use a 'NULL' object reference (points to 'nothing')

access a component.

An object reference must point to an object (an instance of a class)

before it can be used to access components.

Either the reference was never set or it was set to 'NULL' using the

CLEAR statement.

Information on where terminated
Termination occurred in the ABAP program "CL_SALV_WD_C_TABLE_V_TABLE====CP" -
The main program was "SAPMHTTP ".

In the source code you have the termination point in line 168
of the (Include) program "CL_SALV_WD_C_TABLE_V_TABLE====CM080".
The termination is caused because exception "CX_SY_REF_IS_INITIAL" occurred in
but it was neither handled locally nor declared
in the RAISING clause of its signature.

The procedure is in program "CL_SALV_WD_C_TABLE_V_TABLE====CP "; its source
code begins in line
1 of the (Include program "CL_SALV_WD_C_TABLE_V_TABLE====CM080 ".

Line SourceCde

139 "Set new value to result data
140 if ls_changelist-r_old_value is not bound.
141 "insert new table line
142 lr_component->r_result_data->if_salv_bs_r_data_table_edit~insert_table_line(
143 index = l_result_data_index ).
144 else.
145 "Modify existing table line
146 lr_component->r_result_data->if_salv_bs_r_data_table_edit~set_table_line(
147 index = l_result_data_index
148 data_line = <ls_table> ).
149 endif.
150 else.
151 "A single attribute value has to be updated
153 "Get context element from output data node
154 data lr_element type ref to if_wd_context_element.
156 "Retrieve the element to update from the data output node
157 if l_mass_edit_row_inserted = abap_true.
158 "The Element only exists virtually due to the mass edit mode.

159 lr_element = lr_node->get_element( l_mass_edit_virtual_index ).

160 l_mass_edit_row_inserted = abap_false.

161 else.

162 "The element already exists in the data output node.

163 lr_element = lr_node->get_element( ls_changelist-index ).

164 endif.


166 "Determine if the cell to be updated is set to null (Nullable)

167 data l_is_null type abap_bool.

>>>>> l_is_null = lr_element->is_attribute_null( ls_changelist-attribute ).


170 "Update result data with change

171 if <l_value> is assigned.

172 "update ResultData with cell value

173 lr_component->r_result_data->if_salv_bs_r_data_table_edit~set_table_cell(

174 index = l_result_data_index

175 attribute = ls_changelist-attribute

176 data_cell = <l_value>

177 is_null = l_is_null ).

178 else.

179 "Update result data without any updated cell value

180 lr_component->r_result_data->if_salv_bs_r_data_table_edit~set_table_cell(

181 index = l_result_data_index

182 attribute = ls_changelist-attribute

183 is_null = l_is_null ).

184 endif.

Please help us on what could be the reason behind this?