2

I am working on a utility that takes the JPEG byte message from ActiveMQ and convert it to byte array and sends it to other application in byte array.

I want to check if the particular byte message is in proper format and it can be converted to image format, When I am trying to convert it to image format it gives me null pointer exception always. Can any one help?

The code follows:

if (message instanceof BytesMessage) {
    BUSINESS_LOGGER.info("bytes message Recieved");
    BytesMessage bMessage = (BytesMessage) message;
    //BufferedImage imagebyte= null;
    byte[] imageinbytearray;
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    int n;
    byte[] bytemesage = new byte[message.toString().length()];

    while ((n = bMessage.readInt()) !=- 1) {
        out.write(bytemesage, 0, n);
    }

    imageinbytearray= out.toByteArray();
    itemDamage.setPicture(imageinbytearray);

    // itemDamage is a soap operation.
    try {
        BufferedImage imagebyte = ImageIO.read(new ByteArrayInputStream(imageinbytearray));
        File f = new File("c:/Image.jpeg");
        ImageIO.write(imagebyte, "JPEG", f);
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
} else {
    BUSINESS_LOGGER.info("No message format Recieved");
}

The value imagebyte is always null.

java.lang.IllegalArgumentException: image == null!
    at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(ImageTypeSpecifier.java:925)
    at javax.imageio.ImageIO.getWriter(ImageIO.java:1591)
    at javax.imageio.ImageIO.write(ImageIO.java:1520)
    at se.posten.loab.lisp.csp.core.serviceimpl.NovaItemDamageServiceBean.createItemDamage(NovaItemDamageServiceBean.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:74)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:84)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:97)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)
    at org.sculptor.framework.persistence.JpaFlushEagerInterceptor.invoke(JpaFlushEagerInterceptor.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:89)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)
    at org.sculptor.framework.errorhandling.ErrorHandlingInterceptor.invoke(ErrorHandlingInterceptor.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:89)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:73)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:258)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:347)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:243)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
    at se.posten.loab.lisp.csp.core.serviceapi.NovaItemDamageServiceLocal$$$view148.createItemDamage(Unknown Source)    
    at se.posten.loab.lisp.csp.core.consumer.NovaDamageItemConsumerBean.handleMessage(NovaDamageItemConsumerBean.java:63)    
    at se.posten.loab.lisp.csp.core.consumer.NovaDamageItemConsumerBean.onMessage(NovaDamageItemConsumerBean.java:55)   
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    
    at java.lang.reflect.Method.invoke(Method.java:606)   
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)    
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)   
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:86)    
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:97)    
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)    
    at org.sculptor.framework.persistence.JpaFlushEagerInterceptor.invoke(JpaFlushEagerInterceptor.java:41)    
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   
    at java.lang.reflect.Method.invoke(Method.java:606)   
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:89)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)    
    at org.sculptor.framework.errorhandling.ErrorHandlingInterceptor.invoke(ErrorHandlingInterceptor.java:55)    
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   
    at java.lang.reflect.Method.invoke(Method.java:606)  
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:89)   
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)   
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)    
    at org.sculptor.framework.context.ServiceContextStoreInterceptor.invoke(ServiceContextStoreInterceptor.java:50)    
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)   
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    
    at java.lang.reflect.Method.invoke(Method.java:606)   
    at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:89)   
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)   
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)   
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)   
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)   
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:93)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)    
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)   
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:258)    
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:347)    
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:243)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentDescription$5$1.processInvocation(MessageDrivenComponentDescription.java:203)   
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)   
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)    
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)    
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)    
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)    
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)    
    at javax.jms.MessageListener$$$view102.onMessage(Unknown Source)    
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    
    at java.lang.reflect.Method.invoke(Method.java:606)    
    at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.doInvoke(MessageEndpointInvocationHandler.java:140)    
    at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:73)    
    at com.sun.proxy.$Proxy163.onMessage(Unknown Source)    
    at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:123)    
    at org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:64)    
    at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:916)    
    at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:169)    
    at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:218)    
    at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)    
    at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)    
    at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)    
    at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)    
    at java.lang.Thread.run(Thread.java:745)    
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)

This is the stack trace. The issue is not the null pointer here but issue is BufferedImage imagebyte = ImageIO.read(new ByteArrayInputStream(imageinbytearray)); this line returns null value even if imageinbytearray is having byte arrays

Mr. Polywhirl
  • 42,981
  • 12
  • 84
  • 132
ank_rnk
  • 21
  • 4
  • Possible duplicate of [What is a NullPointerException, and how do I fix it?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Turing85 Apr 06 '18 at 14:24
  • 2
    On the information provided, I flagged the question as duplicate. Whenever you have a question revolving around an exception, you should post the stacktrace. If the exception is a `NullPointerException`, you should take additional time to explain why it is no duplicate of [the famous `NullPointerException` question](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it). – Turing85 Apr 06 '18 at 14:27
  • How do you think we can help, without stacktrace??? – alex Apr 06 '18 at 14:39
  • added the stack trace of exception – ank_rnk Apr 06 '18 at 15:30

0 Answers0