Skip to content
New issue

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

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

Already on GitHub? # to your account

RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available [SPR-17007] #21545

Closed
spring-projects-issues opened this issue Jul 4, 2018 · 1 comment
Assignees
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues commented Jul 4, 2018

Dave Syer opened SPR-17007 and commented

If SourceHttpMessageConverter fails to initialize itself it blows up a RestTemplate and then the whole bean factory on startup:

Caused by: javax.xml.transform.TransformerFactoryConfigurationError: Provider com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl not found
	at java.lang.Throwable.<init>(Throwable.java:265)
	at java.lang.Error.<init>(Error.java:70)
	at javax.xml.transform.TransformerFactoryConfigurationError.<init>(TransformerFactoryConfigurationError.java:91)
	at javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:181)
	at javax.xml.transform.FactoryFinder.find(FactoryFinder.java:261)
	at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:106)
	at org.springframework.http.converter.xml.SourceHttpMessageConverter.<init>(SourceHttpMessageConverter.java:86)
	at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:181)
	at org.springframework.boot.autoconfigure.http.HttpMessageConverters.getDefaultConverters(HttpMessageConverters.java:204)
	at org.springframework.boot.autoconfigure.http.HttpMessageConverters.<init>(HttpMessageConverters.java:106)
	at org.springframework.boot.autoconfigure.http.HttpMessageConverters.<init>(HttpMessageConverters.java:92)
	at org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration.messageConverters(HttpMessageConvertersAutoConfiguration.java:72)

The presence of a default implementation of TransformerFactory appears to be platform dependent, so RestTemplate and friends probably ought not to rely on their existence. E.g. a defensive type check might be needed.


Affects: 5.0.7

Issue Links:

Referenced from: commits b09fad1

@spring-projects-issues
Copy link
Collaborator Author

Sébastien Deleuze commented

The TransactionFactory implementation is very specific and can vary, so I chose to just catch the error thrown when instantiating SourceHttpMessageConverter when no impl is available.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

2 participants