I just update my vaadin app to vaadin 7.3 from 7.1.15.
We are having a problem that the tabsheet.tabs show the “errorindicator” even though no error has been occured. please see the attached screen shot.
we are using a runo based custom theme. it is working very well with version 7.1.15.
Thanks for reply. please see the attached file with DOM structure. In fact all other components are working fine. even clicking on tabs with error indicator working as well.
So it is indeed the TabSheet component! My mistake
And it definitely looks like something is actually causing an error on the server side. The DOM structure looks OK, and the error incidator icon is the default one from Runo. So try to pinpoint some exception or something else from your Java code for each of those tab contents.
yes its a Tabsheet component. our designer has some wild ideas .
Regrading error in jave code. As a matter of fact it work without problem with 7.1.15. Moreover, In case of server side error you see the stacktrace when you go with your mouse over the component havign error indicator. But as you can see from the first picture, it shows only “null” “null”. basically not exception is thrown on the server side. I am using eclipse with Tomcat 7.
There are prpbably some changes to the TabSheet component/widget between 7.1.15 and 7.3.0 that cause the changed behavior. If you can, I suggest you create a reduced test case out of this, and write a
new ticket for this so it gets a looked at properly.
I’d recommend first putting a breakpoint in AbstractComponent.setComponentError() and checking if it is called for the TabSheet and what is the stack trace there. It is quite possible that some error in your code (perhaps caused by changed API that you didn’t notice) is triggering this.
Thanks for your tip. I put a break point in setComponentErro(). it never comes to this method.
Then i tried debugging the client side and found out that may be the cause of my error.
The method
update() in VTabSheet.TabCaption class has the following code :
[/code]while debugging i found that
tabstate.description and
tabstate.componentError contain a String “null” and not null value. thats why it sets the tooltipInfo.
But till yet i am not able to find where it comes from
I can see on the server side that tabstate.componentError is null (not String “null”). So I found out that JsonDecoder.decodeValue decode the null into String “null” and set it back to tabstate.
Unfortunately, I am not able to reproduce the error if I create a new Project.
I verified that my application using the right libraries and widgetset build from vaadin 7.3 .
However, fortunately I found a workaround to my problem.
The problem disapperas If Tab is
initialized with
description =""
and an Empty Error message returning “” as componentError instead of null .
private ErrorMessage clearError = new ErrorMessage() {
@Override
public ErrorLevel getErrorLevel() {
return ErrorLevel.INFORMATION;
}
@Override
public String getFormattedHtmlMessage() {
return "";
}
};
Tab t =super.addTab(c);
t.setDescription("");
t.setComponentError(clearError);