You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Sergey Zhemzhitsky (JIRA)" <ji...@apache.org> on 2010/11/12 10:13:25 UTC

[jira] Updated: (CAMEL-3335) NPE occurs without @Entity annotation

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

Sergey Zhemzhitsky updated CAMEL-3335:
--------------------------------------

    Description: 
Here is code from the org.apache.camel.component.jpa.JpaConsumer class

protected String getEntityName(Class<?> clazz) {
        
    Entity entity = clazz.getAnnotation(Entity.class);
        
    // Check if the property name has been defined for Entity annotation
    if (!entity.name().equals("")) { // line 307
        return entity.name();
    } else {
        return null;
    }
 
}

When trying to consume entities from jpa endpoint exception occurs

java.lang.NullPointerException
	at org.apache.camel.component.jpa.JpaConsumer.getEntityName(JpaConsumer.java:307)
	at org.apache.camel.component.jpa.JpaConsumer.createQueryFactory(JpaConsumer.java:287)
	at org.apache.camel.component.jpa.JpaConsumer.getQueryFactory(JpaConsumer.java:196)
	at org.apache.camel.component.jpa.JpaConsumer$1.doInJpa(JpaConsumer.java:83)
	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1$1.doInJpa(JpaTemplateTransactionStrategy.java:82)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146)
	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1.doInTransaction(JpaTemplateTransactionStrategy.java:80)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy.execute(JpaTemplateTransactionStrategy.java:78)
	at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:79)
	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

This is because there is no @Entity annotation and persistence is configured by means of orm.xml.

To fix the problem change line 307 to
if (entity != null && !entity.name().equals(""))

  was:
Here is code of the org.apache.camel.component.jpa.JpaConsumer class

protected String getEntityName(Class<?> clazz) {
        
    Entity entity = clazz.getAnnotation(Entity.class);
        
    // Check if the property name has been defined for Entity annotation
    if (!entity.name().equals("")) { // line 307
        return entity.name();
    } else {
        return null;
    }
 
}

When trying to consume entities from jpa endpoint exception occurs

java.lang.NullPointerException
	at org.apache.camel.component.jpa.JpaConsumer.getEntityName(JpaConsumer.java:307)
	at org.apache.camel.component.jpa.JpaConsumer.createQueryFactory(JpaConsumer.java:287)
	at org.apache.camel.component.jpa.JpaConsumer.getQueryFactory(JpaConsumer.java:196)
	at org.apache.camel.component.jpa.JpaConsumer$1.doInJpa(JpaConsumer.java:83)
	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1$1.doInJpa(JpaTemplateTransactionStrategy.java:82)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146)
	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1.doInTransaction(JpaTemplateTransactionStrategy.java:80)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy.execute(JpaTemplateTransactionStrategy.java:78)
	at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:79)
	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

This is because there is no @Entity annotation and persistence is configured by means of orm.xml.

To fix the problem change line 307 to
if (entity != null && !entity.name().equals(""))


> NPE occurs without @Entity annotation
> -------------------------------------
>
>                 Key: CAMEL-3335
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3335
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-jpa
>    Affects Versions: 2.4.0
>            Reporter: Sergey Zhemzhitsky
>
> Here is code from the org.apache.camel.component.jpa.JpaConsumer class
> protected String getEntityName(Class<?> clazz) {
>         
>     Entity entity = clazz.getAnnotation(Entity.class);
>         
>     // Check if the property name has been defined for Entity annotation
>     if (!entity.name().equals("")) { // line 307
>         return entity.name();
>     } else {
>         return null;
>     }
>  
> }
> When trying to consume entities from jpa endpoint exception occurs
> java.lang.NullPointerException
> 	at org.apache.camel.component.jpa.JpaConsumer.getEntityName(JpaConsumer.java:307)
> 	at org.apache.camel.component.jpa.JpaConsumer.createQueryFactory(JpaConsumer.java:287)
> 	at org.apache.camel.component.jpa.JpaConsumer.getQueryFactory(JpaConsumer.java:196)
> 	at org.apache.camel.component.jpa.JpaConsumer$1.doInJpa(JpaConsumer.java:83)
> 	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1$1.doInJpa(JpaTemplateTransactionStrategy.java:82)
> 	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183)
> 	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146)
> 	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1.doInTransaction(JpaTemplateTransactionStrategy.java:80)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
> 	at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy.execute(JpaTemplateTransactionStrategy.java:78)
> 	at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:79)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> This is because there is no @Entity annotation and persistence is configured by means of orm.xml.
> To fix the problem change line 307 to
> if (entity != null && !entity.name().equals(""))

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.