Mongodb BSON Ошибка объекта

Я использую

GroupBy groupBy = GroupBy.key("Dimension","frequency")
            .initialDocument("{ value: 0 }")
            .reduceFunction("function(obj, result) { " +
                            "  result.Dimension = obj.Dimension; " +    
                            "  result.frequency = obj.frequency; " +  
                            "  result.value += obj.value; " +
                            "}");

с зависимостями

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.0.4.RELEASE</version>
    </dependency>

<dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.9.1</version>
    </dependency>

Работает нормально с mongodb версии 3.0.3

Но выдает ошибку, когда я использую mongodb версии 3.2.0

Вот исключение

HTTP Status 500 - org.apache.cxf.interceptor.Fault: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139}

type Exception report

message org.apache.cxf.interceptor.Fault: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139}

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: Command execution failed:  Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) {   result.Dimension = obj.Dimension;   result.frequency = obj.frequency;   result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139}
    org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:322)
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

org.apache.cxf.interceptor.Fault: Command execution failed:  Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) {   result.Dimension = obj.Dimension;   result.frequency = obj.frequency;   result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139}
    org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94)
    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    java.util.concurrent.FutureTask.run(FutureTask.java:266)
    org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

org.springframework.dao.InvalidDataAccessApiUsageException: Command execution failed:  Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) {   result.Dimension = obj.Dimension;   result.frequency = obj.frequency;   result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139}
    org.springframework.data.mongodb.core.MongoTemplate.handleCommandError(MongoTemplate.java:1566)
    org.springframework.data.mongodb.core.MongoTemplate.group(MongoTemplate.java:1068)
    com.org.project.repo.repositories.repository.getMetadataDetails(repository.java:253)
    com.org.project.repo.business.repoDataBoEntity.getMetadataDetails(repoDataBoEntity.java:580)
    com.org.project.endpoints.PublicData.getMetadataDetails(PublicData.java:304)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:483)
    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94)
    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    java.util.concurrent.FutureTask.run(FutureTask.java:266)
    org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139}
    com.mongodb.CommandResult.getException(CommandResult.java:88)
    com.mongodb.CommandResult.throwOnError(CommandResult.java:134)
    org.springframework.data.mongodb.core.MongoTemplate.handleCommandError(MongoTemplate.java:1560)
    org.springframework.data.mongodb.core.MongoTemplate.group(MongoTemplate.java:1068)
    com.org.project.repo.repositories.repository.getMetadataDetails(repository.java:253)
    com.org.project.repo.business.repoDataBoEntity.getMetadataDetails(repoDataBoEntity.java:580)
    com.org.project.endpoints.PublicData.getMetadataDetails(PublicData.java:304)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:483)
    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94)
    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    java.util.concurrent.FutureTask.run(FutureTask.java:266)
    org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

note The full stack trace of the root cause is available in the Apache Tomcat/8.0.9 logs.
Apache Tomcat/8.0.9

Пожалуйста, помогите мне. Что я делаю неправильно?

Заранее спасибо.

1 ответ

Не то, что вы сделали, это была ошибка, введенная в 3.2, исправленная в 3.4. При обновлении с 2,6 -> 3,0 -> 3,2 -> 3,4 это нас тоже укусило

Другие вопросы по тегам