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

Back Button not working with Spring Boot devtools #29

Closed
MarcGiffing opened this issue Dec 19, 2015 · 2 comments
Closed

Back Button not working with Spring Boot devtools #29

MarcGiffing opened this issue Dec 19, 2015 · 2 comments

Comments

@MarcGiffing
Copy link
Owner

If you click the back button the data are still the same and did not change as expected. I think we have to add more dependencies to the classpath releoading of spring boot devtools.

@MarcGiffing
Copy link
Owner Author

Here is the stacktrace when using page references.

Caused by: java.lang.ClassCastException: cannot assign instance of com.sun.proxy.$Proxy74 to field com.giffing.wicket.spring.boot.example.web.pages.customers.model.UsernameSearchTextField.service of type com.giffing.wicket.spring.boot.example.repository.services.customer.CustomerRepositoryService in instance of com.giffing.wicket.spring.boot.example.web.pages.customers.model.UsernameSearchTextField
    at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2089) ~[na:1.8.0_45]
    at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1261) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1999) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) ~[na:1.8.0_45]
    at java.util.ArrayList.readObject(ArrayList.java:791) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) ~[na:1.8.0_45]
    at java.util.ArrayList.readObject(ArrayList.java:791) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) ~[na:1.8.0_45]
    at java.util.ArrayList.readObject(ArrayList.java:791) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) ~[na:1.8.0_45]
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) ~[na:1.8.0_45]
    at org.apache.wicket.serialize.java.JavaSerializer.deserialize(JavaSerializer.java:122) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.pageStore.AbstractPageStore.deserializePage(AbstractPageStore.java:152) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.pageStore.AbstractCachingPageStore.getPage(AbstractCachingPageStore.java:67) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.page.PageStoreManager$SessionEntry.getPage(PageStoreManager.java:203) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.getPage(PageStoreManager.java:357) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.page.AbstractPageManager.getPage(AbstractPageManager.java:82) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.page.PageManagerDecorator.getPage(PageManagerDecorator.java:50) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.page.PageAccessSynchronizer$2.getPage(PageAccessSynchronizer.java:246) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.PageReference.getPage(PageReference.java:48) ~[wicket-core-7.1.0.jar:7.1.0]
    at com.giffing.wicket.spring.boot.example.web.pages.customers.create.CustomerCreatePage$4.onSubmit(CustomerCreatePage.java:106) ~[classes/:na]
    at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:785) ~[wicket-core-7.1.0.jar:7.1.0]
    at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:708) ~[wicket-core-7.1.0.jar:7.1.0]
    ... 91 common frames omitted

@MarcGiffing
Copy link
Owner Author

See spring-projects/spring-boot#3805

From the Spring Boot documentation:

20.2.6 Known limitations

Restart functionality does not work well with objects that are deserialized using a standard ObjectInputStream. If you need to deserialize data, you may need to use Spring’s ConfigurableObjectInputStream in combination with Thread.currentThread().getContextClassLoader().

Unfortunately, several third-party libraries deserialize without considering the context classloader. If you find such a problem, you will need to request a fix with the original authors.

Maybe a special serializer is needed when using spring boot devtools...

@MarcGiffing MarcGiffing added this to the 0.0.6 milestone Dec 23, 2015
MarcGiffing added a commit that referenced this issue Dec 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant