null pointer exception

I used the following piece of codes to generate SalesOrderLine numbers (sequential).


  //creating lineNumber
        int max = 0;
        Integer lastNum = salesOrderLineDs.getItems().stream()
        .map(SalesOrderLine::getLineNumberSo)
        .max(Integer::compareTo)
        .orElse(0);
        line.setLineNumberSo(lastNum+1);

        salesOrderLineDs.addItem(line);

It worked earlier but recently throes exception in V 6.4. The line number 87 in exception is this :


        .max(Integer::compareTo)

java.lang.NullPointerException
	at java.util.Objects.requireNonNull(Objects.java:203)
	at java.util.Optional.<init>(Optional.java:96)
	at java.util.Optional.of(Optional.java:108)
	at java.util.stream.ReduceOps$2ReducingSink.get(ReduceOps.java:129)
	at java.util.stream.ReduceOps$2ReducingSink.get(ReduceOps.java:107)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:479)
	at java.util.stream.ReferencePipeline.max(ReferencePipeline.java:515)
	at comcompany.web.sd.salesorder.SalesOrderEdit.onAdd(SalesOrderEdit.java:87)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.haulmont.cuba.gui.xml.DeclarativeAction.actionPerform(DeclarativeAction.java:84)
	at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:45)
	at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
	at com.vaadin.ui.Button.fireClick(Button.java:377)
	at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54)
	at com.vaadin.ui.Button$1.click(Button.java:54)
	at sun.reflect.NativeMethodAccessorImpl.

Hi,

It seems that the exception is not related to CUBA 6.4. Value of lineNumber property of some SalesOrderLine is null in your database. Please check it, and if it is null then you must be missed value initialization of this property somewhere.