I checked it out and it is true, BCs get stuck together
but
it is not Javascript fault.

I stripped away all lines of code step by step 
and so just it seems to be a problem caused by JSON reading json text with 
json array inside, or something related to ArrayLists, or creating 
instances of a certain class from json array elements.

The strange thing is that the JSON array is correctly extracted and all is 
completed with no errors, data are created correctly 
but after it the BC is stuck.

If I comment that methods that has JSON import inside the BC is not blocked.

As I can understand something is causing a silent crash inside the 
simulator (?!?).
I created a test case but it Does work, so I cannot reproduce the issue, 
indeed the BC is Not blocked.

I have no means to further debug my app.



Il giorno lunedì 2 novembre 2020 alle 03:54:16 UTC+1 Shai Almog ha scritto:

> AFAIK they all use a single browser engine and are as a result single 
> threaded. If JS in another component is blocking (or a navigation listener) 
> then there could be cascading effects.
>
> On Sunday, November 1, 2020 at 3:46:22 PM UTC+2 P5music wrote:
>
>> That error was a one-time event, I think.
>> In fact the Javascript code is executed, for examples commands like this:
>> var div=document.createElement('DIV');div.innerText="TEXT 
>> INJECTED";div.style.position="relative";div.id
>> ="0";document.body.appendChild(div);
>> but then the BC is stuck.
>> Do you deem that another BC elsewhere in the application with other 
>> Javascript injection could cause this? Have the BCs something in common 
>> that can be cross-locked?
>> Il giorno domenica 1 novembre 2020 alle 03:28:13 UTC+1 Shai Almog ha 
>> scritto:
>>
>>> Yes that could be relevant.
>>> Can you update the Codename One libraries via Codename One Settings and 
>>> try to reproduce this? 
>>> That line number is no longer applicable.
>>>
>>> On Saturday, October 31, 2020 at 4:10:38 PM UTC+2 P5music wrote:
>>>
>>>> I do not see Javascript errors in Chrome (previously, syntax errors 
>>>> where shown and I fixed them, now there is nothing)
>>>> But I see this error in log, could it be relevant?
>>>> Exception in thread "Thread-154" java.lang.NullPointerException
>>>> at 
>>>> com.codename1.impl.javase.cef.ResourceHandler.getResponseHeaders(ResourceHandler.java:39)
>>>> Il giorno sabato 31 ottobre 2020 alle 06:04:48 UTC+1 Shai Almog ha 
>>>> scritto:
>>>>
>>>>> Have you tried the chrome JavaScript debugger to see where it's stuck? 
>>>>> Just inject some event code to see where things are blocked and see if 
>>>>> breakpoints are reached.
>>>>>
>>>>> On Friday, October 30, 2020 at 9:30:16 AM UTC+2 P5music wrote:
>>>>>
>>>>>> I realized that the executeAndWait call came from myApp, but in 
>>>>>> another BC that's in another container. 
>>>>>> Now all calls are of the execute() type.
>>>>>>
>>>>>> I debugged and I see that the calls are completed and the app runs 
>>>>>> again.
>>>>>> So the BC is not blocked by the Javascript injection.
>>>>>>
>>>>>> I created a test case but I see that this blocking does happen only 
>>>>>> in my app.
>>>>>>
>>>>>> What further debugging is possible, said that the execute() method 
>>>>>> seems not to the cause?
>>>>>>
>>>>>>
>>>>>> Il giorno venerdì 30 ottobre 2020 alle 07:06:54 UTC+1 Shai Almog ha 
>>>>>> scritto:
>>>>>>
>>>>>>> executeAndWait uses invokeAndBlock to wait. That means that the 
>>>>>>> JavaScript call never completed. 
>>>>>>> Since this happens in the simulator it's pretty easy to place a 
>>>>>>> breakpoint on executeAndWait to find out who invoked it.
>>>>>>>
>>>>>>> On Thursday, October 29, 2020 at 11:03:17 AM UTC+2 P5music wrote:
>>>>>>>
>>>>>>>> It seems that it is stuck repeating here:
>>>>>>>>
>>>>>>>> while (!res.complete) {
>>>>>>>> Display.getInstance().invokeAndBlock(new Runnable() {
>>>>>>>>
>>>>>>>> public void run() {
>>>>>>>> Util.wait(res, 1000);
>>>>>>>> }
>>>>>>>>
>>>>>>>> });
>>>>>>>> }
>>>>>>>>
>>>>>>>> in executeAndWait. 
>>>>>>>> Notice that in my app this method is not called, instead the normal 
>>>>>>>> execute() is.
>>>>>>>>
>>>>>>>> Il giorno giovedì 29 ottobre 2020 alle 04:25:43 UTC+1 Shai Almog ha 
>>>>>>>> scritto:
>>>>>>>>
>>>>>>>>> I don't know. We'll need to see an issue in isolation in the issue 
>>>>>>>>> tracker to debug this.
>>>>>>>>>
>>>>>>>>> On Wednesday, October 28, 2020 at 11:02:11 AM UTC+2 P5music wrote:
>>>>>>>>>
>>>>>>>>>> No errors in JS console.
>>>>>>>>>> Could it be possible that the execute() instruction is waiting 
>>>>>>>>>> for some call like onSuccess() ?
>>>>>>>>>> If I am not wrong, documentation says it is not the case but 
>>>>>>>>>> maybe it is an issue of the method.
>>>>>>>>>> Thanks
>>>>>>>>>> Il giorno mercoledì 28 ottobre 2020 alle 03:37:21 UTC+1 Shai 
>>>>>>>>>> Almog ha scritto:
>>>>>>>>>>
>>>>>>>>>>> Did you open this in the JavaScript debugger and looked at the 
>>>>>>>>>>> JS console while doing that?
>>>>>>>>>>>
>>>>>>>>>>> On Tuesday, October 27, 2020 at 12:15:15 PM UTC+2 P5music wrote:
>>>>>>>>>>>
>>>>>>>>>>>> It is not a regression, I created a test case with a similar 
>>>>>>>>>>>> layout and it worked with a Google page.
>>>>>>>>>>>>
>>>>>>>>>>>> I debugged my app and it turned up being Javascript injections' 
>>>>>>>>>>>> fault.
>>>>>>>>>>>> But it is very strange:
>>>>>>>>>>>>
>>>>>>>>>>>> The initial page of the BC is made by:
>>>>>>>>>>>>
>>>>>>>>>>>> webView.setPage("<HTML><BODY 
>>>>>>>>>>>> style=\"display:flex;flex-direction:column;\" >"+
>>>>>>>>>>>>                createLines()+
>>>>>>>>>>>>                       "</BODY></HTML>","");
>>>>>>>>>>>>                       
>>>>>>>>>>>> where it is
>>>>>>>>>>>> private String createLines()
>>>>>>>>>>>>     {
>>>>>>>>>>>>         String result="";
>>>>>>>>>>>>         for (int i=0;i<100;i++)
>>>>>>>>>>>>             result=result+"<BR/><P>TEXT - LINE "+i+"</P>";
>>>>>>>>>>>>         return result;
>>>>>>>>>>>>     }                      
>>>>>>>>>>>>     
>>>>>>>>>>>> It is just to have a long page. At this stage the scrollbar and 
>>>>>>>>>>>> the mouse wheel work, and the page is scrollable.
>>>>>>>>>>>>
>>>>>>>>>>>> Then a list of commands like 
>>>>>>>>>>>> var 
>>>>>>>>>>>> div=document.createElement('DIV');div.style.position="relative";
>>>>>>>>>>>> div.id="1";document.body.appendChild(div);
>>>>>>>>>>>>
>>>>>>>>>>>> are injected, in a single string.
>>>>>>>>>>>> As I can see the BC does not like that commands, even just one 
>>>>>>>>>>>> of them (I tried just one of them too).
>>>>>>>>>>>>
>>>>>>>>>>>> The divs are correctly displayed, also with real content inside 
>>>>>>>>>>>> them, but the issue is present even with this bare empty div HTML.
>>>>>>>>>>>>
>>>>>>>>>>>> When that command is injected the BC is no more responsive to 
>>>>>>>>>>>> mouse events.
>>>>>>>>>>>>
>>>>>>>>>>>> This method is used:
>>>>>>>>>>>>  public void executeJS(String command)
>>>>>>>>>>>>     {
>>>>>>>>>>>>         webView.execute(command);
>>>>>>>>>>>>     }
>>>>>>>>>>>>     
>>>>>>>>>>>> What's wrong with that Javascript injection?
>>>>>>>>>>>>
>>>>>>>>>>>> Il giorno martedì 27 ottobre 2020 alle 03:55:28 UTC+1 Shai 
>>>>>>>>>>>> Almog ha scritto:
>>>>>>>>>>>>
>>>>>>>>>>>>> In that case it could be a CEF regression. Can you isolate a 
>>>>>>>>>>>>> runnable test case that reproduces the problem and file an issue?
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Monday, October 26, 2020 at 1:10:53 PM UTC+2 P5music wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I cannot test on the FX version, I am testing the CEF one on 
>>>>>>>>>>>>>> the Simulator (no device test available too).
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Yes I see the vertical scrollbar of the BrowserComponent, and 
>>>>>>>>>>>>>> it stays also with 
>>>>>>>>>>>>>> setScrollVisible(false);
>>>>>>>>>>>>>> But the BC does not scroll with that, and it does not scroll 
>>>>>>>>>>>>>> even using the mouse wheel, or dragging over with the mouse.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Il giorno lunedì 26 ottobre 2020 alle 04:44:34 UTC+1 Shai 
>>>>>>>>>>>>>> Almog ha scritto:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Do you see a scroll bar on the browser component?
>>>>>>>>>>>>>>> Did you try this on the device? Did you try it with the FX 
>>>>>>>>>>>>>>> version of the browser component?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Sunday, October 25, 2020 at 12:28:46 PM UTC+2 P5music 
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> So I removed all useless calls to  setScrollable kind of 
>>>>>>>>>>>>>>>> methods.
>>>>>>>>>>>>>>>> It is called just on the mainForm and/or its content pane.
>>>>>>>>>>>>>>>> mainForm.setScrollable(false);
>>>>>>>>>>>>>>>> OR
>>>>>>>>>>>>>>>> mainForm.getContentPane().setScrollableY(false);
>>>>>>>>>>>>>>>> is needed to let not scroll the entire user interface.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> But the BC is not scrollable.
>>>>>>>>>>>>>>>> If I set scrollableY=true for the left container it does 
>>>>>>>>>>>>>>>> not scroll either.
>>>>>>>>>>>>>>>> One of the BC or the left container has to be scrollable to 
>>>>>>>>>>>>>>>> fulfill my needs.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> What further checks can be done?
>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>> Il giorno domenica 25 ottobre 2020 alle 03:14:39 UTC+1 Shai 
>>>>>>>>>>>>>>>> Almog ha scritto:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Don't change the scrollability of the browser component.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> That option is under zoom and it relates to the scrolling 
>>>>>>>>>>>>>>>>> of the simulator skin itself.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> You don't need to explicitly call setScrollable(false) 
>>>>>>>>>>>>>>>>> since that's the default. The only thing that's scrollable by 
>>>>>>>>>>>>>>>>> default if 
>>>>>>>>>>>>>>>>> the content pane of the main form.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Saturday, October 24, 2020 at 2:09:05 PM UTC+3 P5music 
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> The CEF BC is used. 
>>>>>>>>>>>>>>>>>> for the mainform: setScrollable(false)
>>>>>>>>>>>>>>>>>> for the BC: setScrollableY(true)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> There is no simulator menu entry "scrollable" to uncheck, 
>>>>>>>>>>>>>>>>>> and I do not understand why to uncheck it anyway, and what 
>>>>>>>>>>>>>>>>>> it would refer 
>>>>>>>>>>>>>>>>>> to?
>>>>>>>>>>>>>>>>>> Please can you explain?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I have nested containers and I set them all with 
>>>>>>>>>>>>>>>>>> setScrollableX(false) and setScrollableY(false).
>>>>>>>>>>>>>>>>>> Also the result container of fab binding is set the same. 
>>>>>>>>>>>>>>>>>> (this result container is added to the form)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> A thing has be noticed.
>>>>>>>>>>>>>>>>>> The most deep nested level is a BorderLayout. It has in 
>>>>>>>>>>>>>>>>>> the north a vertically-short container, then in the center 
>>>>>>>>>>>>>>>>>> it has the 
>>>>>>>>>>>>>>>>>> BrowserComponent.
>>>>>>>>>>>>>>>>>> When attempting to scroll the BC, just sometimes I see a 
>>>>>>>>>>>>>>>>>> very tiny movement of the entire BC including the vertical 
>>>>>>>>>>>>>>>>>> scrollbar, but 
>>>>>>>>>>>>>>>>>> not the other container in north position.
>>>>>>>>>>>>>>>>>> This reminds me that something is scrolling that's 
>>>>>>>>>>>>>>>>>> surrounding the BC but I cannot understand what.
>>>>>>>>>>>>>>>>>> Do you see anything about this?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Il giorno sabato 24 ottobre 2020 alle 07:32:54 UTC+2 Shai 
>>>>>>>>>>>>>>>>>> Almog ha scritto:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> How is it set to scrollable?
>>>>>>>>>>>>>>>>>>> If you mean in the simulator menu try to uncheck 
>>>>>>>>>>>>>>>>>>> scrollable.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Are you using CEF or the FX based browser?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Friday, October 23, 2020 at 5:41:50 PM UTC+3 P5music 
>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> My CodenameApp has a main form that splits the screen 
>>>>>>>>>>>>>>>>>>>> like a master detail layout in landscape mode. It is set 
>>>>>>>>>>>>>>>>>>>> not scrollable.
>>>>>>>>>>>>>>>>>>>> A table layout is used with some constraints to have 
>>>>>>>>>>>>>>>>>>>> this appearance.
>>>>>>>>>>>>>>>>>>>> I am testint the app in the simulator.
>>>>>>>>>>>>>>>>>>>> In the left part a BrowserComponent is inside a 
>>>>>>>>>>>>>>>>>>>> container and displays some HTML code.
>>>>>>>>>>>>>>>>>>>> I see that the vertical bar appears on the BC because 
>>>>>>>>>>>>>>>>>>>> the HTML overflows vertically, but cannot be moved, it is 
>>>>>>>>>>>>>>>>>>>> blocked.
>>>>>>>>>>>>>>>>>>>> The BC is not resposive to the mouse wheel too. It is 
>>>>>>>>>>>>>>>>>>>> set scrollable.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The container is bound to the FloatingActionButton that 
>>>>>>>>>>>>>>>>>>>> is floating on the container itself and the BC.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Do you know any issue that prevents the BC from being 
>>>>>>>>>>>>>>>>>>>> scrolled? Is it something related to the Version 7.0 
>>>>>>>>>>>>>>>>>>>> milestone issues?
>>>>>>>>>>>>>>>>>>>> Thanks in advance
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/d6377bfb-4906-49df-b32c-deae58bc5e92n%40googlegroups.com.

Reply via email to