You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Juan José (JIRA)" <ji...@apache.org> on 2016/11/10 16:24:58 UTC

[jira] [Updated] (SOLR-9747) Create an issue

     [ https://issues.apache.org/jira/browse/SOLR-9747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juan José updated SOLR-9747:
----------------------------
    Description: 
When upgrade Apache Solr from version 4.10 to 5.0.0, the parse serialization is not working from SolrDocument class to json.
we use library com.fasterxml.jackson.core:jackson-databind:2.5.4 for json parsing. We are getting this exception:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.StackOverflowError
	org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1302)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)


   causa raíz
            java.lang.StackOverflowError
	com.fasterxml.jackson.databind.type.HierarchicType.getRawClass(HierarchicType.java:74)
	com.fasterxml.jackson.databind.type.TypeFactory._doFindSuperInterfaceChain(TypeFactory.java:1009)
	com.fasterxml.jackson.databind.type.TypeFactory._findSuperInterfaceChain(TypeFactory.java:1004)
	com.fasterxml.jackson.databind.type.TypeFactory._findSuperTypeChain(TypeFactory.java:958)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:285)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)


We solved this error getting fields manually from the map _field, the code is:
public List<Object> transformSolrDocumentsListToDocuments(SolrDocumentList searched) {
	List<Object> documents = new ArrayList<>();
	for (SolrDocument solrDocument : searched) {
		Map<String, Object> fields = new HashMap<>();
		for (String key : solrDocument.getFieldValueMap().keySet()) {
			Object field = solrDocument.getFieldValue(key);
			fields.put(key, field);
		}
		documents.add(fields);
	}

	return documents;
} 

> Create an issue
> ---------------
>
>                 Key: SOLR-9747
>                 URL: https://issues.apache.org/jira/browse/SOLR-9747
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: search
>            Reporter: Juan José
>         Attachments: issue-solr-code
>
>
> When upgrade Apache Solr from version 4.10 to 5.0.0, the parse serialization is not working from SolrDocument class to json.
> we use library com.fasterxml.jackson.core:jackson-databind:2.5.4 for json parsing. We are getting this exception:
> org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.StackOverflowError
> 	org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1302)
> 	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977)
> 	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
> 	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
> 	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> 	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
> 	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>    causa raíz
>             java.lang.StackOverflowError
> 	com.fasterxml.jackson.databind.type.HierarchicType.getRawClass(HierarchicType.java:74)
> 	com.fasterxml.jackson.databind.type.TypeFactory._doFindSuperInterfaceChain(TypeFactory.java:1009)
> 	com.fasterxml.jackson.databind.type.TypeFactory._findSuperInterfaceChain(TypeFactory.java:1004)
> 	com.fasterxml.jackson.databind.type.TypeFactory._findSuperTypeChain(TypeFactory.java:958)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:285)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> 	com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:732)
> 	com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:387)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:303)
> 	com.fasterxml.jackson.databind.type.TypeFactory.findTypeParameters(TypeFactory.java:279)
> 	com.fasterxml.jackson.databind.type.TypeFactory._mapType(TypeFactory.java:891)
> We solved this error getting fields manually from the map _field, the code is:
> public List<Object> transformSolrDocumentsListToDocuments(SolrDocumentList searched) {
> 	List<Object> documents = new ArrayList<>();
> 	for (SolrDocument solrDocument : searched) {
> 		Map<String, Object> fields = new HashMap<>();
> 		for (String key : solrDocument.getFieldValueMap().keySet()) {
> 			Object field = solrDocument.getFieldValue(key);
> 			fields.put(key, field);
> 		}
> 		documents.add(fields);
> 	}
> 	return documents;
> } 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org