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

Bo Xu updated AMQ-5069:
-----------------------

    Summary: scheduled delivery not work when persistent="false"  
schedulerSupport="true"  (was: scheduled delivery did not work when 
persistent="false"  schedulerSupport="true")

> scheduled delivery not work when persistent="false"  schedulerSupport="true"
> ----------------------------------------------------------------------------
>
>                 Key: AMQ-5069
>                 URL: https://issues.apache.org/jira/browse/AMQ-5069
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0
>            Reporter: Bo Xu
>            Priority: Critical
>
> with version 5.9, when configured in activemq.xml with: persistent="false"  
> schedulerSupport="true", scheduled delivery does NOT work. The message is 
> immediately ready for delivery, 
> Here is my fix, please review it and make it official.
>  
> diff 
> ../activemq-parent-5.9.0/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
>  My_BrokerService.java 
> 647c647
> <         LOG.info("Apache ActiveMQ {} ({}, {}) is starting", new Object[]{ 
> getBrokerVersion(), getBrokerName(), brokerId });
> ---
> >         LOG.info("Modified Apache ActiveMQ {} ({}, {}) is starting", new 
> > Object[]{ getBrokerVersion(), getBrokerName(), brokerId });
> 1806c1806,1807
> <         if (!isSchedulerSupport()) {
> ---
> >         //if (!isSchedulerSupport()) @BOXU: always true, if !isPersistent()
> >         if (!this.schedulerSupport) {
> 1814,1816c1815
> <             if (!isPersistent()) {
> <                 return null;
> <             }
> ---
> >             if (isPersistent()) {
> 1818,1821c1817,1835
> <             try {
> <                 PersistenceAdapter pa = getPersistenceAdapter();
> <                 if (pa != null && pa instanceof JobSchedulerStore) {
> <                     this.jobSchedulerStore = (JobSchedulerStore) pa;
> ---
> >                 try {
> >                     PersistenceAdapter pa = getPersistenceAdapter();
> >                     if (pa != null && pa instanceof JobSchedulerStore) {
> >                         this.jobSchedulerStore = (JobSchedulerStore) pa;
> >                         configureService(jobSchedulerStore);
> >                         return this.jobSchedulerStore;
> >                     }
> >                     //else return null;
> >                 } catch (IOException e) {
> >                     throw new RuntimeException(e);
> >                 }
> >                                               } 
> >             else {
> >                 LOG.info("Creating user configured jobSchedulerStore, fixed 
> > by BOXU, Paypal");
> >     
> >                 try {
> >                     String clazz = 
> > "org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl";
> >                     jobSchedulerStore = (JobSchedulerStore) 
> > getClass().getClassLoader().loadClass(clazz).newInstance();
> >                     
> > jobSchedulerStore.setDirectory(getSchedulerDirectoryFile());
> 1823c1837,1840
> <                     return this.jobSchedulerStore;
> ---
> >                     jobSchedulerStore.start();
> >                     LOG.info("JobScheduler using directory: {}", 
> > getSchedulerDirectoryFile());
> >                 } catch (Exception e) {
> >                     throw new RuntimeException(e);
> 1825,1837d1841
> <             } catch (IOException e) {
> <                 throw new RuntimeException(e);
> <             }
> < 
> <             try {
> <                 String clazz = 
> "org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl";
> <                 jobSchedulerStore = (JobSchedulerStore) 
> getClass().getClassLoader().loadClass(clazz).newInstance();
> <                 jobSchedulerStore.setDirectory(getSchedulerDirectoryFile());
> <                 configureService(jobSchedulerStore);
> <                 jobSchedulerStore.start();
> <                 LOG.info("JobScheduler using directory: {}", 
> getSchedulerDirectoryFile());
> <             } catch (Exception e) {
> <                 throw new RuntimeException(e);



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to