Try thinking how the test case differs from your actual implementation.
I'll ask Steve if he has an idea.
On Monday, November 2, 2020 at 10:48:29 PM UTC+2 P5music wrote:
> 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/2cac57c9-9620-49a7-a2e4-e3cd8060a8f7n%40googlegroups.com.