B4J Question ABMaterial Problem running on Google Compute Engine

walterf25

Expert
Licensed User
Longtime User
Hi All, i've had a project running on my work's google compute engine instance, it's been running fine for a few years, recently I made some small changes but suddenly now it crashes and not sure why, when I run the project on my windows machine, it runs fine without an issue, but when I run it in my compute engine instance it crashes.

Here's the crash log I see

java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:140)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at anywheresoftware.b4j.object.WebSocketModule$Adapter$ThreadHandler.run(WebSocketModule.java:204)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NullPointerException
at com.ab.abmaterial.ABMRadioGroup.RefreshInternal(ABMRadioGroup.java:246)
at com.ab.abmaterial.ABMCell.RefreshInternalExtra(ABMCell.java:1567)
at com.ab.abmaterial.ABMRow.RefreshInternal(ABMRow.java:831)
at com.ab.abmaterial.ABMContainer.RefreshInternalExtra(ABMContainer.java:1915)
at com.ab.abmaterial.ABMModalSheet.RefreshInternalExtra(ABMModalSheet.java:382)
at com.ab.abmaterial.ABMPage.Refresh(ABMPage.java:4063)
at com.ab.template.labinventory._connectpage(labinventory.java:1307)
at com.ab.template.labinventory._websocket_connected(labinventory.java:6791)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
... 7 more

This is the part I added recently, basically I added a radiobutton group to this abmodalsheet that displays a QR code
1737079138108.png


But for some reason having added that part is causing a crash, can anyone think why this would be, it runs fine on my windows machine that's what's puzzling about this.

By the way I am using ABMaterial library 5.15, I have copied all the necessary files to the compute engine instance as well, here's the code where the abmodalsheet is built along with the radiobutton group.

Custommodalsheet:
Sub BuildCustomModalSheet() As ABMModalSheet
    Dim myModal As ABMModalSheet
    myModal.Initialize(page, "printqr", True, ABM.MODALSHEET_TYPE_NORMAL, "modalsheet")
    myModal.Content.UseTheme("modalsheet")
    myModal.Footer.UseTheme("snapchat")
    myModal.Size = ABM.MODALSHEET_SIZE_NORMAL
    myModal.MaxHeight = "80%"
    myModal.MaxWidth = "35%"
    myModal.IsDismissible = False
   
    ' create the grid for the content
    '''myModal.Content.AddRows(1,True, "").AddCells12(5,"centre")
    myModal.Content.AddRowsV(1, True, ABM.VISIBILITY_ALL, "centre").AddCellsOS(1, 4, 4, 4, 6, 6, 6, "centre")
    ' ALAIN: Add one row with one cell.  We will add all our Field containers in this cell
    ' this way, we do not have to add rows dynamically
    myModal.Content.AddRows(1,True, "centre").AddCellsOSMPV(1,3,3,3,6,6,6,0,0,0,0,ABM.VISIBILITY_ALL, "centre")
    myModal.Content.AddRows(1,True, "centre").AddCellsOS(1,3,3,3,6,6,6, "centre")
    myModal.Content.addrows(1,True,"").AddCellsOSV(1,3,3,3,3,3,3,ABM.VISIBILITY_ALL,"").AddCellsOSV(1,1,1,1,3,3,3,ABM.VISIBILITY_ALL,"")
    myModal.Content.BuildGrid 'IMPORTANT once you loaded the complete grid AND before you start adding components

    Log("encrypt: " & encrypt($"Type=${mtype}&Model=${model}&SerialNO=${serialno}"$))
    Dim encrypted As String = encrypt($"Type=${mtype}&Model=${model}&SerialNO=${serialno}"$)
    '''Dim equiptmentqr As QRCodeGenerator
    Dim equiptmentqr As QRCodeGenerator2
    Dim murl As String
    Dim su As StringUtils
    murl = encyptedurl
    equiptmentqr.Initialize(page, "equipqr", murl&encrypted, 256)
    myModal.Content.Cell(2, 1).AddComponent(equiptmentqr.ABMComp)
   
    Dim option1 As ABMRadioGroup
    option1.Initialize(page, "labelsize", "radio")
    option1.Title = "Select Label Size"
    option1.AddRadioButtonNoLineBreak("50x50 mm", True)
    option1.AddRadioButton("50x25 mm", True)
    option1.SetActive(1)
   
    myModal.Content.SetBorderex(ABM.COLOR_BLACK, ABM.INTENSITY_DARKEN2, 2, ABM.BORDER_GROOVE, "20px")
   
    myModal.Content.Cell(3,1).AddComponent(option1)
    myModal.Content.Cell(3,1).Refresh
    ' create the buttons for the footer
    Dim msbtn1 As ABMButton
    msbtn1.InitializeFlat(page, "qrprint", "", "", "PRINT", "footerbutton")
    msbtn1.UseFullCellWidth = True
    myModal.Content.Cell(4,1).AddComponent(msbtn1)
    myModal.Content.Cell(4,1).UseTheme("centre")

   
    Dim msbtn2 As ABMButton
    msbtn2.InitializeFlat(page, "qrclose", "", "", "CANCEL", "footerbutton")
    msbtn2.UseFullCellWidth = True
    myModal.Content.Cell(4,2).AddComponent(msbtn2)
    myModal.Content.Cell(4,2).UseTheme("centre")
   
    Return myModal
End Sub

Hope to be able to solve this issue, as I mentioned, i've had this project running for around 3 years and it gets used at work a lot, so it look real bad on me, if I can't get this to work again.

Walter
 

MichalK73

Well-Known Member
Licensed User
Longtime User
What if you replace the radiobutton with ABMCombo or ABMButton from the menu ?
This way you will check if it is the fault of ABmRadio component
 
Upvote 0
Top