2013-06-09 5 views
0

없는 NegativeArraySizeException

val nullablestr = hornetQMessage.getBodyBuffer.readNullableSimpleString.toString 

또는

val strMessage = hornetQMessage.getBodyBuffer.readString 

가 org.hornetq.core.buffers에서

java.lang.NegativeArraySizeException 을 받고 사용하려고 HornetQ bodyBuffer을 읽으려고하고 점점 .impl.ChannelBufferWrapper.readSimpleStringInternal (ChannelBufferWrapper.java:83) at org.gmailcale.messaging.hornetQ.HornetQMessageConverter $ .extractGSMessage (HornetQMessageConverter.scala : 68) .MessageBusHornetQClientImpl $$ anonfun $ 1 $$ anon $ 2 $$ anonfun $ 수신 $ 1.apply (MessageBusHornetQClientImpl.scala : 246) com.gamescale.messaging.hornetQ.MessageBusHornetQClientImpl $$ anonfun $ 1 anon $ 2 $$ anonfun $ receive $ 1 .apply (MessageBusHornetQClientImpl.scala : 243) at akka.actor.Actor $ class.apply (Actor.scala : 563) at com.gamescale.messaging.hornetQ.MessageBusHornetQClientImpl $$ anonfun $ 1 $$ anon $ 2.apply (MessageBusHornetQClientImpl .scala : 242) at akka.actor.LocalActorRef.invoke (ActorRef.scala : 905) at akka.dispatch.MessageInvo akka.dispatch.ExecutorBasedEventDrivenDispatcher $$ 아논 $ 4.processMailbox (ExecutorBasedEventDrivenDispatcher.scala 122)에서 에서 : $ akka.dispatch.ExecutableMailbox class.processMailbox (216 ExecutorBasedEventDrivenDispatcher.scala)에서 : cation.invoke (25 MessageHandling.scala) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor에에서 : akka.dispatch.ExecutorBasedEventDrivenDispatcher $$ 아논 $의 4.run (122 ExecutorBasedEventDrivenDispatcher.scala)에서 : $ akka.dispatch.ExecutableMailbox의 class.run (188 ExecutorBasedEventDrivenDispatcher.scala). java : 1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) at java.lang.Thread.run (Thread.java:722) at akka.dispatch.MonitorableThread.run (ThreadPoolBuilder.scala : 18 4)

라는 메시지가

hornetQMessage.getBodyBuffer.writeString(message)

어떤 아이디어를 작성하는 같은 방법을 사용하고

?

+0

어떤 HornetQ 버전입니까? 또한 HQ 서버와 클라이언트 버전을 언급하거나 최소한 모든 액터가 동일한 버전을 사용하는지 확인해야합니다. Fwiw, 스택 추적의 대부분은 본사와 관련이 없으며 질문과 관련이 없으므로이를 요약해야합니다. – Francisco

+0

감사합니다. 해결되었습니다. – igx

답변

1

모든 HornetQ 사용자를위한 참조입니다. cause of this bug was determined at the HornetQ forum.

요약하면 버퍼에서 값을 잘못 읽음으로써 발생했습니다. 말하자면, 문자열을 쓰기 전에 음의 정수를 쓰고, 반대쪽에서는 음의 정수를 먼저 읽지 않고 문자열을 읽으려고합니다.