From e2ae55eb9b05a0656ba44a551e2d86bf982e28f9 Mon Sep 17 00:00:00 2001 From: Zhichun Wu Date: Tue, 10 Oct 2017 15:20:46 +0800 Subject: [PATCH] Merge changes from 7.1.0.5 --- pentaho-kettle/pom.xml | 2 +- .../di/core/database/DatabaseMeta.java | 2 +- .../di/core/logging/LogChannelFileWriter.java | 13 +++--- .../di/core/logging/LoggingRegistry.java | 44 +++++++++++++++++- .../main/java/org/pentaho/di/job/JobMeta.java | 3 ++ .../di/job/entries/job/JobEntryJob.java | 27 +++++++++++ .../java/org/pentaho/di/trans/TransMeta.java | 7 +++ .../trans/steps/mergerows/MergeRowsMeta.java | 35 +++++++++++++- .../UserDefinedJavaClassMeta.java | 4 +- .../org/pentaho/di/www/CarteSingleton.java | 4 +- ...{DIS-7.1.0.0-12.jar => DIS-7.1.0.5-67.jar} | Bin 45764 -> 45764 bytes ...ar => kettle5-log4j-plugin-7.1.0.5-67.jar} | Bin 23178 -> 23179 bytes pentaho-platform/pom.xml | 2 +- .../dbcp/PooledDatasourceHelper.java | 6 +-- .../scheduler2/quartz/QuartzScheduler.java | 7 +-- pom.xml | 6 +-- 16 files changed, 134 insertions(+), 28 deletions(-) rename pentaho-platform/lib/{DIS-7.1.0.0-12.jar => DIS-7.1.0.5-67.jar} (90%) rename pentaho-platform/lib/{kettle5-log4j-plugin-7.1.0.0-12.jar => kettle5-log4j-plugin-7.1.0.5-67.jar} (85%) diff --git a/pentaho-kettle/pom.xml b/pentaho-kettle/pom.xml index 13f1a21..7664e34 100644 --- a/pentaho-kettle/pom.xml +++ b/pentaho-kettle/pom.xml @@ -4,7 +4,7 @@ com.github.zhicwu pdi-cluster - 7.1.0.0-SNAPSHOT + 7.1.0.5-SNAPSHOT pentaho-kettle jar diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/core/database/DatabaseMeta.java b/pentaho-kettle/src/main/java/org/pentaho/di/core/database/DatabaseMeta.java index 099b98d..6e257be 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/core/database/DatabaseMeta.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/core/database/DatabaseMeta.java @@ -1121,7 +1121,7 @@ protected String appendExtraOptions(String url, Map extraOptions urlBuilder.append(optionSeparator); } - urlBuilder.append(parameter).append(valueSeparator).append(value); + urlBuilder.append(environmentSubstitute(parameter)).append(valueSeparator).append(environmentSubstitute(value)); first = false; } } diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LogChannelFileWriter.java b/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LogChannelFileWriter.java index 4779ca9..392a3f8 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LogChannelFileWriter.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LogChannelFileWriter.java @@ -2,7 +2,7 @@ * * Pentaho Data Integration * - * Copyright (C) 2002-2013 by Pentaho : http://www.pentaho.com + * Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com * ******************************************************************************* * @@ -44,9 +44,10 @@ public class LogChannelFileWriter { private AtomicBoolean active; private KettleException exception; - private int lastBufferLineNr; protected OutputStream logFileOutputStream; + private LogChannelFileWriterBuffer buffer; + /** * Create a new log channel file writer * @@ -63,7 +64,6 @@ public LogChannelFileWriter(String logChannelId, FileObject logFile, boolean app this.pollingInterval = pollingInterval; active = new AtomicBoolean(false); - lastBufferLineNr = KettleLogStore.getLastBufferLineNr(); // it's basic move to create the directory *before* creating log file try { @@ -80,6 +80,9 @@ public LogChannelFileWriter(String logChannelId, FileObject logFile, boolean app } catch (IOException e) { throw new KettleException("There was an error while trying to open file '" + logFile + "' for writing", e); } + + this.buffer = new LogChannelFileWriterBuffer( this.logChannelId ); + LoggingRegistry.getInstance().registerLogChannelFileWriterBuffer( this.buffer ); } /** @@ -133,10 +136,8 @@ public void run() { public synchronized void flush() { try { - int last = KettleLogStore.getLastBufferLineNr(); - StringBuffer buffer = KettleLogStore.getAppender().getBuffer(logChannelId, false, lastBufferLineNr, last); + StringBuffer buffer = this.buffer.getBuffer(); logFileOutputStream.write(buffer.toString().getBytes()); - lastBufferLineNr = last; logFileOutputStream.flush(); } catch (Exception e) { exception = new KettleException("There was an error logging to file '" + logFile + "'", e); diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LoggingRegistry.java b/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LoggingRegistry.java index ca4fa46..971d6d2 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LoggingRegistry.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/core/logging/LoggingRegistry.java @@ -2,7 +2,7 @@ * * Pentaho Data Integration * - * Copyright (C) 2002-2015 by Pentaho : http://www.pentaho.com + * Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com * ******************************************************************************* * @@ -34,6 +34,7 @@ public class LoggingRegistry { private static final int DEFAULT_MAX_SIZE = 10000; private final Map map; + private Map fileWriterBuffers; private final Map> childrenMap; private final int maxSize; private final Object syncObject = new Object(); @@ -42,6 +43,7 @@ public class LoggingRegistry { private LoggingRegistry() { this.map = new ConcurrentHashMap(); + this.fileWriterBuffers = new ConcurrentHashMap<>(); this.childrenMap = new ConcurrentHashMap>(); this.lastModificationTime = new Date(); @@ -131,9 +133,12 @@ public int compare(LoggingObjectInterface o1, LoggingObjectInterface o2) { } }); int cutCount = this.maxSize < 1000 ? this.maxSize : 1000; + List channelsNotToRemove = getLogChannelFileWriterBufferIds(); for (int i = 0; i < cutCount; i++) { LoggingObjectInterface toRemove = all.get(i); - this.map.remove(toRemove.getLogChannelId()); + if (!channelsNotToRemove.contains(toRemove.getLogChannelId())) { + this.map.remove(toRemove.getLogChannelId()); + } } removeOrphans(); } @@ -252,4 +257,39 @@ public void removeOrphans() { // Remove all orphaned children this.childrenMap.keySet().retainAll(this.map.keySet()); } + + public void registerLogChannelFileWriterBuffer(LogChannelFileWriterBuffer fileWriterBuffer) { + this.fileWriterBuffers.put(fileWriterBuffer.getLogChannelId(), fileWriterBuffer); + } + + public LogChannelFileWriterBuffer getLogChannelFileWriterBuffer(String id) { + for (String bufferId : this.fileWriterBuffers.keySet()) { + if (getLogChannelChildren(bufferId).contains(id)) { + return this.fileWriterBuffers.get(bufferId); + } + } + return null; + } + + protected List getLogChannelFileWriterBufferIds() { + Set bufferIds = this.fileWriterBuffers.keySet(); + + List ids = new ArrayList<>(); + for (String id : bufferIds) { + ids.addAll(getLogChannelChildren(id)); + } + + ids.addAll(bufferIds); + return ids; + } + + public void removeLogChannelFileWriterBuffer(String id) { + Set bufferIds = this.fileWriterBuffers.keySet(); + + for (String bufferId : bufferIds) { + if (getLogChannelChildren(id).contains(bufferId)) { + this.fileWriterBuffers.remove(bufferId); + } + } + } } diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/job/JobMeta.java b/pentaho-kettle/src/main/java/org/pentaho/di/job/JobMeta.java index 73900ff..37e7ca5 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/job/JobMeta.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/job/JobMeta.java @@ -918,6 +918,9 @@ public void loadXML(Node jobnode, String fname, Repository rep, IMetaStore metaS // Set the filename here so it can be used in variables for ALL aspects of the job FIX: PDI-8890 if (null == rep) { setFilename(fname); + } else { + // Set the repository here so it can be used in variables for ALL aspects of the job FIX: PDI-16441 + setRepository(rep); } // diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/job/entries/job/JobEntryJob.java b/pentaho-kettle/src/main/java/org/pentaho/di/job/entries/job/JobEntryJob.java index 88558aa..a783186 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/job/entries/job/JobEntryJob.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/job/entries/job/JobEntryJob.java @@ -57,6 +57,7 @@ import org.pentaho.metastore.api.IMetaStore; import org.w3c.dom.Node; +import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.*; @@ -984,6 +985,32 @@ public Result execute(Result result, int nr) throws KettleException { } } + // PDI-14781 + // Write log from carte to file + if (setLogfile && jobStatus != null) { + String logFromCarte = jobStatus.getLoggingString(); + if (!Utils.isEmpty(logFromCarte)) { + FileObject logfile = logChannelFileWriter.getLogFile(); + OutputStream logFileOutputStream = null; + try { + logFileOutputStream = KettleVFS.getOutputStream(logfile, setAppendLogfile); + logFileOutputStream.write(logFromCarte.getBytes()); + logFileOutputStream.flush(); + } catch (Exception e) { + logError("There was an error logging to file '" + logfile + "'", e); + } finally { + try { + if (logFileOutputStream != null) { + logFileOutputStream.close(); + logFileOutputStream = null; + } + } catch (Exception e) { + logError("There was an error closing log file file '" + logfile + "'", e); + } + } + } + } + if (!waitingToFinish) { // Since the job was posted successfully, the result is true... // diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/trans/TransMeta.java b/pentaho-kettle/src/main/java/org/pentaho/di/trans/TransMeta.java index 48a35a3..bcd2f06 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/trans/TransMeta.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/trans/TransMeta.java @@ -2778,6 +2778,9 @@ public void loadXML(Node transnode, String fname, IMetaStore metaStore, Reposito // Set the filename here so it can be used in variables for ALL aspects of the transformation FIX: PDI-8890 if (null == rep) { setFilename(fname); + } else { + // Set the repository here so it can be used in variables for ALL aspects of the job FIX: PDI-16441 + setRepository(rep); } // Read all the database connections from the repository to make sure that we don't overwrite any there by @@ -3112,6 +3115,10 @@ public void loadXML(Node transnode, String fname, IMetaStore metaStore, Reposito for (int i = 0; i < nrSlaveServers; i++) { Node slaveServerNode = XMLHandler.getSubNodeByNr(slaveServersNode, SlaveServer.XML_TAG, i); SlaveServer slaveServer = new SlaveServer(slaveServerNode); + if (slaveServer.getName() == null) { + log.logError(BaseMessages.getString(PKG, "TransMeta.Log.WarningWhileCreationSlaveServer", slaveServer.getName())); + continue; + } slaveServer.shareVariablesWith(this); // Check if the object exists and if it's a shared object. diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/mergerows/MergeRowsMeta.java b/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/mergerows/MergeRowsMeta.java index 655f06b..e3564b4 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/mergerows/MergeRowsMeta.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/mergerows/MergeRowsMeta.java @@ -2,7 +2,7 @@ * * Pentaho Data Integration * - * Copyright (C) 2002-2016 by Pentaho : http://www.pentaho.com + * Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com * ******************************************************************************* * @@ -27,6 +27,7 @@ import org.pentaho.di.core.Const; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.exception.KettleException; +import org.pentaho.di.core.exception.KettleRowException; import org.pentaho.di.core.exception.KettleStepException; import org.pentaho.di.core.exception.KettleXMLException; import org.pentaho.di.core.injection.Injection; @@ -297,7 +298,7 @@ public void getFields(RowMetaInterface r, String name, RowMetaInterface[] info, boolean found = false; for (int i = 0; i < info.length && !found; i++) { if (info[i] != null) { - r.mergeRowMeta(info[i]); + r.mergeRowMeta(info[i], name); found = true; } } @@ -338,6 +339,36 @@ public void check(List remarks, TransMeta transMeta, StepM PKG, "MergeRowsMeta.CheckResult.OneSourceStepMissing"), stepMeta); remarks.add(cr); } + + RowMetaInterface referenceRowMeta = null; + RowMetaInterface compareRowMeta = null; + try { + referenceRowMeta = transMeta.getPrevStepFields(referenceStream.getStepname()); + compareRowMeta = transMeta.getPrevStepFields(compareStream.getStepname()); + } catch (KettleStepException kse) { + new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString( + PKG, "MergeRowsMeta.CheckResult.ErrorGettingPrevStepFields"), stepMeta); + } + if (referenceRowMeta != null && compareRowMeta != null) { + boolean rowsMatch = false; + try { + MergeRows.checkInputLayoutValid(referenceRowMeta, compareRowMeta); + rowsMatch = true; + } catch (KettleRowException kre) { + rowsMatch = false; + } + if (rowsMatch) { + cr = + new CheckResult(CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString( + PKG, "MergeRowsMeta.CheckResult.RowDefinitionMatch"), stepMeta); + remarks.add(cr); + } else { + cr = + new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString( + PKG, "MergeRowsMeta.CheckResult.RowDefinitionNotMatch"), stepMeta); + remarks.add(cr); + } + } } @Override diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/userdefinedjavaclass/UserDefinedJavaClassMeta.java b/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/userdefinedjavaclass/UserDefinedJavaClassMeta.java index add6088..66a65f5 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/userdefinedjavaclass/UserDefinedJavaClassMeta.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/trans/steps/userdefinedjavaclass/UserDefinedJavaClassMeta.java @@ -2,7 +2,7 @@ * * Pentaho Data Integration * - * Copyright (C) 2002-2016 by Pentaho : http://www.pentaho.com + * Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com * ******************************************************************************* * @@ -209,7 +209,7 @@ public void cookClasses() { if (def.isTransformClass()) { cookedTransformClass = (Class) cookedClass; } - } catch (Exception e) { + } catch (Throwable e) { CompileException exception = new CompileException(e.getMessage(), null); exception.setStackTrace(new StackTraceElement[]{}); cookErrors.add(exception); diff --git a/pentaho-kettle/src/main/java/org/pentaho/di/www/CarteSingleton.java b/pentaho-kettle/src/main/java/org/pentaho/di/www/CarteSingleton.java index f526cad..dd5d145 100644 --- a/pentaho-kettle/src/main/java/org/pentaho/di/www/CarteSingleton.java +++ b/pentaho-kettle/src/main/java/org/pentaho/di/www/CarteSingleton.java @@ -2,7 +2,7 @@ * * Pentaho Data Integration * - * Copyright (C) 2002-2016 by Pentaho : http://www.pentaho.com + * Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com * ******************************************************************************* * @@ -202,6 +202,8 @@ public void run() { // Let's remove this from the job map... // + String id = jobMap.getJob(entry).getLogChannelId(); + LoggingRegistry.getInstance().removeLogChannelFileWriterBuffer(id); jobMap.removeJob(entry); // Remove the logging information from the log registry & central log store diff --git a/pentaho-platform/lib/DIS-7.1.0.0-12.jar b/pentaho-platform/lib/DIS-7.1.0.5-67.jar similarity index 90% rename from pentaho-platform/lib/DIS-7.1.0.0-12.jar rename to pentaho-platform/lib/DIS-7.1.0.5-67.jar index e62e95b43057e17daeb386919b6c6cf29bb662d7..b599fe9a6ec9d9ed7bc689b63ec3219335fd3bcf 100644 GIT binary patch delta 1687 zcmZvc3rw3;6vyv(TNuSs*hDE`d31BMGD@*Rwo$~6Jyc!;bV91(k%@yqj6qyvYyrBW zQZhQrB}OO%#-q{#1-48#9TE^QR)=wFHf9!lK;}pUSq7U?r?>ZhrF63i>7U>EpYxr2 z?&&u%4=3iKC^MDE_XWTQfLOzxRFg<9coKj2hb$HLnx0lxH)QtBl;qaeg-*P9@aQ>R zT;!EE|5!>7?e6$4bSdnMgwmpy#Jo|)IF&Hj{oLbUUOzskwsCV$Na7p ziY^~gHK1SMQ)R9bbL`{#GEONPTD)k~(OARf?r%=vqOIl}PTe_`&8e&oEvM|Am5}U! zp&i-Ek*X)WS|u8PLb&g(_VMR)8m|SGWLf0}H9Av7rhZG0^+3pUhGTW*_H5~N$@_tW zkylH#H`I=VL&usvkexX4%GfWBr!PEmee>apBkZEVOY5!n%ROln?FIR{nw9waqKtdL zRW2KU&Tlz>^L%pj3olC)cNWI|GgBED$aAeF#5Z)gXNP++(I!hg86nEBuwpO9b=~eH za?d&o%g9lyMMAxwT3DFHpd`N_v}mChgzjNh>ttbQ=Z8Y6^N!ao5_oLwp8)WC(q~R% z1Ty@OQQ=|yml`$jp>6J#?yv2ck_<_0ymBb9mu>}0?`0u!@c`83;&#mEC|~N8J<#+% zk6tu9uJBe=W%Z?#IALXBC*_x{Tcplm_5B&~Y^o3du>^p`wE_Ti>tueofClZiaU;vK zvGD6)QncMBrv)9DF=2!i$OR}R>`~O($NANLER@Q**k(8H$K0q~%USIUA{&b~_OsBc zCj6$_Kft{TK7jlL%W(W!F^Pu^_@ayb5}NlT=Gt3J)WsGtJKafG%$Za&Yw}vbjaA{lO&$$~qvkVF{{e9` B```co delta 1750 zcmZuxdrVVj6#wpRdAB@-LAf0iSlYsbi$p4;3fOc^YOVAiku8%t0^^a$t2!1i@+c#u zvt;yJW{`)KM}Y!eg^5mZu#CBZ6P08kY?+K9i7tvG+hUiX+t+(9mdb8&)05xtcYfbF z=R3XAtN8RP?yFX^*xmqm0x)Z|9c=Lxd(EKVKjVJ8)z^|r)~IBb#o}Z7rm*QFxz(5J z5@Q~o`s0ZztVi9q_g+eK<=we2c12Cfd4@{8qD5^ScboAzRyh^*@proKqhs*GhDO2C z=w!%@eD>3{)#ejc*+Ovk@;ATgZrG126^nksRb_U!jrZ@==N3%8@pissEcLJQ)|?x| zk2D8FxosI&54kDM)g&(1P1zDS7w?l*^2+JmKW29ZbvGFOoOL_u1zR3Aic2dB;$0O` zf{EA;Db!%`0Wasg3T0dY{0j4?B|l&(bil>m+6;EXT9((AaZz3uah0#D7fj{GASD6Q zSd5v9rJ+1VZLC@^I!ferap>r$&;&Le`GxZtmJ}Cz&{#Ve!sxC@<478NP*_bHj}~b2 z7~Sov58Y{2S*OA2$g2CDac*zoG1ygoITOVh&b!gNo5oruH?#F1!*;YCWg>e=7S45a zDD19y?->R_7Q{ODjh-_FF@n##s_+`e>Zk+1>^O-=e+Iof(ECAtg|?`)ge- z(~-IS`|NfZPy22-f*^>;QpZM6eLv8i=B*AN)snK*<4s#|I$gMLGaIbwaK~SHLCUVGEO< zVmktuRK>UI$7W16k5aJ9Z!v*>~XXFW} zOA8nx@O~-cqv2yIXFFex_{Bns7YuvAi6Q28e@1w=mcb(h4lmL5thLwO(N~fSK%z^F zQ&2N3r!-IO4SY`=06F^pxQ<~T{CfBh-D`lAz%S@1?<3YwYJBdB`TgIb#amzjknG}Z zXrhE;RskintpDB1K?g*j1C%bp0X-6m;3K_w%cjs%2>oQ1o#cl8wy1K2OH#OjNfN+X zgFC!t;ZUbUL?m>_qE_#s1gT5Hgwe5!&;$BzpJjrL!1uQzeh<{yLg-#Q5!T#>uq3!{ z3#BpNO9cL~gThiexv=CCbI)fGE;k|kO?Yn;TSJ(si(Wt>EE(Yl{_iuhSz=FJIBXr+ F`5#-ASk?dl diff --git a/pentaho-platform/lib/kettle5-log4j-plugin-7.1.0.0-12.jar b/pentaho-platform/lib/kettle5-log4j-plugin-7.1.0.5-67.jar similarity index 85% rename from pentaho-platform/lib/kettle5-log4j-plugin-7.1.0.0-12.jar rename to pentaho-platform/lib/kettle5-log4j-plugin-7.1.0.5-67.jar index 10878130a9a1e9ce3bd39fb785aa3a82ca26a954..a92c05942822dc671be6c43afde3b80886873723 100644 GIT binary patch delta 843 zcmeC$%GkY?kuSiTnT3mifrEj;rp4KNBA+^kHINRmKeKA0ty29#t|kWohxbkY4USvA znKUu--YLDH!1fnXv;DHxTA$v<_P2I*07t1*#pkq&>V>PM&8E%0Xd=2&g30dV-lc# z*{U^1B(`PTZAs^_)=De)m=Gc|RmnGm#wf=EW_U2FK^R4hnh?f(Mm-4Q zBBL3E!Odg?W^DFm%4USHb}>(8g0KSFGT9-leZ1Xl5SFiqH&opm(R0iYu{_BbsO&j; zKB(RYimgz+nVNa55OufpenHjUG}VEsGBfK^$XPW`t(BkSezHGJn*&K@BXJc|Lp$12|;)gR)sbX=rj?kU2aN zP2L-11@_70-$Bq|)(wURb9%5PL~2Q}9fa{L*bTxk2=Re18bXXAjO`(@5Qao(G=xze zngU_m4^4nDoWr1uGI7H-4L@0#e8VNOLWn>&u ZkPAeaL*%`qq!^hdr$x!Jr2Vc7fuMP1;ssNHofWh>+$TaIW3En z(|`H>D&%&*y7$ZJ)|Tw}sfKq=H}5ds3*?{4YK(F$V1@^y8iY~As0m@rXVil* zE;5=y7~D)YV8&)|rffzCYZvomCI~B#Et4I>+Q-|?24VS%cth3A5k1EY5zCW|fy$nf z=Y#5fpx6r4o2i+{3Q>1k?-x|vO;a7HI!=oaL5OUkr!`b;f%hI(PLLN?{;HZ>KRGo} zzTT1Vkb*$#L)+yumPC7}duV%3p0{9E@k_SD9tI+_xK!@Nm3%e(|9jWeVm_YIChwxh z+)hR3+}W!&avuiPYB@D_~5e8Mv86FRj$_a;xoDGkIi0DT^r6xs$Lqy(2ghCi@kx+A1MaCh8 ZxL}kyMBXP#iji@0dXyYnUJwHi002CsWq$ww diff --git a/pentaho-platform/pom.xml b/pentaho-platform/pom.xml index b12c242..a6fe2e5 100644 --- a/pentaho-platform/pom.xml +++ b/pentaho-platform/pom.xml @@ -4,7 +4,7 @@ com.github.zhicwu pdi-cluster - 7.1.0.0-SNAPSHOT + 7.1.0.5-SNAPSHOT pentaho-platform jar diff --git a/pentaho-platform/src/main/java/org/pentaho/platform/engine/services/connection/datasource/dbcp/PooledDatasourceHelper.java b/pentaho-platform/src/main/java/org/pentaho/platform/engine/services/connection/datasource/dbcp/PooledDatasourceHelper.java index 73c6f04..8e7b916 100644 --- a/pentaho-platform/src/main/java/org/pentaho/platform/engine/services/connection/datasource/dbcp/PooledDatasourceHelper.java +++ b/pentaho-platform/src/main/java/org/pentaho/platform/engine/services/connection/datasource/dbcp/PooledDatasourceHelper.java @@ -13,7 +13,7 @@ * See the GNU General Public License for more details. * * - * Copyright 2006 - 2016 Pentaho Corporation. All rights reserved. + * Copyright 2006 - 2017 Pentaho Corporation. All rights reserved. */ package org.pentaho.platform.engine.services.connection.datasource.dbcp; @@ -192,7 +192,7 @@ public static PoolingDataSource setupPooledDataSource(IDatabaseConnection databa poolingDataSource = new PoolingDataSource(); if (dialect instanceof IDriverLocator) { if (!((IDriverLocator) dialect).initialize(driverClass)) { - throw new RuntimeException(Messages.getInstance() + throw new DriverNotInitializedException(Messages.getInstance() .getErrorString("PooledDatasourceHelper.ERROR_0009_UNABLE_TO_POOL_DATASOURCE_CANT_INITIALIZE", databaseConnection.getName(), driverClass)); } @@ -412,7 +412,7 @@ private static void initDriverClass(DriverManagerDataSource driverManagerDataSou String databaseConnectionName) throws DBDatasourceServiceException { if (dialect instanceof IDriverLocator) { if (!((IDriverLocator) dialect).initialize(driverClassName)) { - throw new RuntimeException(Messages.getInstance() + throw new DriverNotInitializedException(Messages.getInstance() .getErrorString("PooledDatasourceHelper.ERROR_0009_UNABLE_TO_POOL_DATASOURCE_CANT_INITIALIZE", databaseConnectionName, driverClassName)); } diff --git a/pentaho-platform/src/main/java/org/pentaho/platform/scheduler2/quartz/QuartzScheduler.java b/pentaho-platform/src/main/java/org/pentaho/platform/scheduler2/quartz/QuartzScheduler.java index 48b0db5..459fbb2 100644 --- a/pentaho-platform/src/main/java/org/pentaho/platform/scheduler2/quartz/QuartzScheduler.java +++ b/pentaho-platform/src/main/java/org/pentaho/platform/scheduler2/quartz/QuartzScheduler.java @@ -431,12 +431,7 @@ public void triggerNow(String jobId) throws SchedulerException { } else if (trigger instanceof CronTrigger) { ((CronTrigger) trigger).setPreviousFireTime(new Date()); } - if (trigger.getStartTime() != null && trigger.getStartTime().before(new Date())) { - Date newStartTime = trigger.getFireTimeAfter(new Date()); - if (newStartTime != null) { - trigger.setStartTime(newStartTime); - } - } + // force the trigger to be updated with the previous fire time scheduler.rescheduleJob(jobId, jobKey.getUserName(), trigger); } diff --git a/pom.xml b/pom.xml index d574c6d..0af4047 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.github.zhicwu pdi-cluster - 7.1.0.0-SNAPSHOT + 7.1.0.5-SNAPSHOT pom PDI Cluster Instructions and workarounds for building a cluster using Pentaho BA server and Kettle. @@ -17,7 +17,7 @@ - 7.1.0.0-12 + 7.1.0.5-67 UTF-8 ${project.basedir} 3.5.1 @@ -47,7 +47,7 @@ pentaho-repo - http://repo.pentaho.org/artifactory/repo/ + http://nexus.pentaho.org/content/groups/omni