Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the output of the Session Replication Debug Tool #79

Open
SebastianKuehnau opened this issue Feb 7, 2023 · 1 comment
Open
Labels
enhancement New feature or request

Comments

@SebastianKuehnau
Copy link

Currently, the output of the Debugger Tool is confusing because it is not immediately obvious at which point in the code an in-serializable element is used.

It says which object is affected but not where the crucial implementation is done.

Start Track ID: 1995, Stack depth: 43. Reference stack: 
	- element of array (index: 0)
	- array (class "[Ljava.lang.Object;", size: 1)
	- field (class "java.lang.invoke.SerializedLambda", name: "capturedArgs", type: "class [Ljava.lang.Object;")
	- object (class "java.lang.invoke.SerializedLambda", SerializedLambda[capturingClass=class com.vaadin.kubernetes.demo.views.counter.CounterView, functionalInterfaceMethod=com/vaadin/flow/component/ComponentEventListener.onComponentEvent:(Lcom/vaadin/flow/component/ComponentEvent;)V, implementation=invokeStatic com/vaadin/kubernetes/demo/views/counter/CounterView.lambda$new$dda7ed00$1:(Lcom/vaadin/kubernetes/demo/services/CrmService;Lcom/vaadin/flow/component/ClickEvent;)V, instantiatedMethodType=(Lcom/vaadin/flow/component/ClickEvent;)V, numCaptured=1])
	- field (class "com.vaadin.flow.component.ComponentEventBus$ListenerWrapper", name: "listener", type: "interface com.vaadin.flow.component.ComponentEventListener")
	- object (class "com.vaadin.flow.component.ComponentEventBus$ListenerWrapper", com.vaadin.flow.component.ComponentEventBus$ListenerWrapper@4f141f2c)
	- element of array (index: 2)
	- array (class "[Ljava.lang.Object;", size: 3)
	- ...

To spot the code fragment that needs to be changed (to make the component/view serializable), it would be good to highlight the affected line of code or part in the code, where the in-serializable object has been used.

In addition, all annotated elements are displayed among each other so you can't quickly identify, how many parts of your code are not serializable because you get the log output with one default indent displayed. It would be good to see each part separate with a breakline or tab-dedented.

@heruan heruan added the enhancement New feature or request label Feb 21, 2023
@jorgheymans
Copy link

jorgheymans commented Dec 13, 2023

This output is also quite confusing. It first says Session Serialization did not completed in 10000 ms, and then it says Session serialization attempt completed in 9999 ms.

[nio-8080-exec-2] s.s.s.d.SerializationDebugRequestHandler : Session Serialization did not completed in 10000 ms.
[nio-8080-exec-2] s.s.s.d.SerializationDebugRequestHandler : Session serialization attempt completed in 9999 ms with outcomes: [SERIALIZATION_FAILED]

(possible nitpicking also about 'did not completed' and the casing of S(s)erialization)

EDIT 12/03 my remarks were addressed in one of the latest releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants