Upgrading from Vaadin 7.3.5 to 7.6.8 breaks layouts completely

We’ve been using custom themes (using @Theme) successfully for a while now with Vaadin 7.3.5.

Tried to update to Vaadin 7.6.8 but the result was that the page layout broke completely (like being completely unable to load CSS files or something).

Is 7.6 not backwards compatible? Have some default paths changed between the versions or what might be the issue?

Shoudln’t be any issues. If you are using pre-compiled theme (style.css) you have to make sure that the theme is compiled after updating the Vaadin version.

No, I’m using a custom theme, though it’s based on reindeer/legacy-styles.css

About the same issue…
I tested updating from 7.3.5 to 7.3.6 and theme styles were missing completely. I checked that with 7.3.4 it also works (and it has been working with earlier version longer time ago).

The custom theme is set with @Theme-annotation. The stylesheet is available if I try to load it with browser.
I run Vaadin bootstrap javascript in debugger and noticed that the stylesheet is added to -section of the document in both versions. However, in 7.3.6 something removes it from there before the loading finishes totally.
-The stylesheet link in the DOM-tree is
-If I add the stylesheet link to DOM-tree by hand after the loading, everything works just ok after that.

Any ideas where to continue? We would really need some newer versions of Vaadin but this prevents the updates to any newer version.

Edit:
I checked the HTTP-traffic between web browser and server.
After bootstrap.js, the styles.css is loaded, then DefaultWidgetSet.nocache.js, then /myapp/ui/?v-<numbers_here>
The response contains UIDL-JSON, which has theme missing in “pagestate”-part (in 7.3.5 it’s there).
Also the typemapping-table later in the message is different in text-comparison but it seems to be just in different order.

The part in JSON-message:

    "0" : {

“pageState” : {
“title” : “My app name”
},
“width” : “100.0%”,
“theme” : “myTheme”, → this is missing in 7.3.6
“localeServiceState” : {
“localeData” : [{
“twelveHourClock” : false,
“dateFormat” : “dd/MM/yy”,
“firstDayOfWeek” : 1,
“name” : “en_GB”,
“dayNames” : [“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”]
,
“shortMonthNames” : [“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”, “”]
,
“am” : null,
“hourMinuteDelimiter” : “:”,
“pm” : null,
“monthNames” : [“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”, “”]
,
“shortDayNames” : [“Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”]

}
]
},
“height” : “100.0%”
},

And found it:

Non-backwards compatible change in 7.3.6 (when considering people migrated from Vaadin 6):
https://dev.vaadin.com/changeset/0cdaf28d282134413910971cdeb7ed71cacdc6e3/vaadin

UI sets theme via “setTheme” instead of “getState.theme”.
Application overrides setTheme to do basically nothing.
We extend Application.

Fix: Override Application setTheme with the implementation copied from UI → works.

(And to be clear: The Application-class we are talking about was in our own project structures, probably after migrating from Vaadin 6. Didn’t even notice as someone has left it with package com.vaadin. ).

Damn. Happy to see that you found a solution.

“UI sets theme via “setTheme” instead of “getState.theme”. Application overrides setTheme to do basically nothing.
We extend Application.”

Application is Vaadin 6 class. This reminds me that you have done partial Vaadin 6 → Vaadin 7 migration. This means that you will have some unexpected corner cases in your application. I would recommend you to discuss with our sales and we can find help for you to get rid of remaining parts of Vaadin 6 functionality.