ReleaseNotes.html 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451
  1. <HTML>
  2. <BODY>
  3. <!-- ---------- -->
  4. <h2>JACOB 1.19</h2>
  5. <h3>What's New</h3>
  6. <ul>
  7. <li>
  8. Upgraded from Java 6 to Java 8 compilation
  9. </li>
  10. <li>
  11. Upgraded from junit 3.8.1 to 4.12
  12. </li>
  13. <li>
  14. Migrated from CVS to GIT using sourceforge migration instructions https://sourceforge.net/p/forge/documentation/CVS/
  15. </li>
  16. </ul>
  17. <h3>Tracked Changes</h3>
  18. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  19. <tr>
  20. <td colspan="2"><b>Bugs</b></td>
  21. </tr>
  22. <tr>
  23. <td width="13%" valign="top">132</td>
  24. <td width="87%" valign="top"><a href="https://sourceforge.net/p/jacob-project/bugs/132/">32 bit ponters not convertd to 64 bit</a></td>
  25. </tr>
  26. <tr>
  27. <td width="13%" valign="top">130</td>
  28. <td width="87%" valign="top"><a href="https://sourceforge.net/p/jacob-project/bugs/130/">Name value incorrect in Mainfest.MF affecting tamper check</a></td>
  29. </tr>
  30. <tr>
  31. <td colspan="2"><b>Patches</b></td>
  32. </tr>
  33. <tr>
  34. <td width="13%" valign="top">n/a</td>
  35. <td width="87%" valign="top">none</td>
  36. </tr>
  37. <tr>
  38. <td colspan="2"><b>Feature Requests</b></td>
  39. </tr>
  40. <tr>
  41. <td width="13%" valign="top">n/a</td>
  42. <td width="87%" valign="top">none</td>
  43. </tr>
  44. </table>
  45. <!-- ---------- -->
  46. <h2>JACOB 1.18</h2>
  47. <h3>What's New</h3>
  48. <ul>
  49. <li>
  50. (M2) Built with Java 1.6 and Visual Studio 2013 Microsoft Platform SDK V7.1A (introduced with VS2012)instead of v7.0A (vs2010)
  51. Targeting SDK V7.1 with USING_V110_SDK71" http://en.wikipedia.org/wiki/Microsoft_Windows_SDK
  52. </li><li>
  53. (M2) Temporarily using AMD64 compiler instead of x86_amd64 because of installation issues on dev machine.
  54. Should generate same output even though dll files are different sizes between M1 and M2. http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx
  55. </li><li>
  56. (M2) Dropped support for XP
  57. </li>
  58. </ul>
  59. <h3>Tracked Changes</h3>
  60. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  61. <tr>
  62. <td colspan="2"><b>Bugs</b></td>
  63. </tr>
  64. <tr>
  65. <td width="13%" valign="top">119 (new numbers)</td>
  66. <td width="87%" valign="top">(M?)Attribute lacking in MANIFEST.MF required since Java 1.7u45</td>
  67. </tr>
  68. <tr>
  69. <td width="13%" valign="top">&nbsp;</td>
  70. <td width="87%" valign="top">&nbsp;</td>
  71. </tr>
  72. <tr>
  73. <td colspan="2"><b>Patches</b></td>
  74. </tr>
  75. <tr>
  76. <td width="13%" valign="top">42 (new numbers)</td>
  77. <td width="87%" valign="top">(M3)Mapping of names to dispIDs implemented</td>
  78. </tr>
  79. <tr>
  80. <td width="13%" valign="top">&nbsp;</td>
  81. <td width="87%" valign="top">&nbsp;</td>
  82. </tr>
  83. <tr>
  84. <td colspan="2"><b>Feature Requests</b></td>
  85. </tr>
  86. <tr>
  87. <tr>
  88. <td width="13%" valign="top"></td>
  89. <td width="87%" valign="top"></td>
  90. </tr>
  91. </table>
  92. <!-- ---------- -->
  93. <h2>JACOB 1.17</h2>
  94. <h3>What's New</h3>
  95. <ul>
  96. <li>
  97. No new features
  98. </li>
  99. </ul>
  100. <h3>Tracked Changes</h3>
  101. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  102. <tr>
  103. <td colspan="2"><b>Bugs</b></td>
  104. </tr>
  105. <tr>
  106. <td width="13%" valign="top">3505940</td>
  107. <td width="87%" valign="top">(M2)JacobVersion.properties accidently omitted from JAR. Must build from command line to get it included.</td>
  108. </tr>
  109. <tr>
  110. <td width="13%" valign="top">3436102</td>
  111. <td width="87%" valign="top">(M1)Fix memory pointer that was 32 bit. Causes defects in 64 bit systems above 2GB</td>
  112. </tr>
  113. <tr>
  114. <td width="13%" valign="top">115 (new numbers)</td>
  115. <td width="87%" valign="top">(M3)Release problem if you've got two threads with the same name</td>
  116. </tr>
  117. <tr>
  118. <td width="13%" valign="top">111 (new numbers)</td>
  119. <td width="87%" valign="top">(M3)m_pDispatch is not 0 if not attached</td>
  120. </tr>
  121. <tr>
  122. <td width="13%" valign="top">117 (new numbers)</td>
  123. <td width="87%" valign="top">(M4) NullPointerException injacob-1.17-M2</td>
  124. </tr>
  125. <tr>
  126. <td width="13%" valign="top">&nbsp;</td>
  127. <td width="87%" valign="top">&nbsp;</td>
  128. </tr>
  129. <tr>
  130. <td colspan="2"><b>Patches</b></td>
  131. </tr>
  132. <tr>
  133. <td width="13%" valign="top">41 (new numbers)</td>
  134. <td width="87%" valign="top">(M3)Fix for SafeArray(String) constructor</td>
  135. </tr> <tr>
  136. <td width="13%" valign="top">&nbsp;</td>
  137. <td width="87%" valign="top">&nbsp;</td>
  138. </tr>
  139. <tr>
  140. <td colspan="2"><b>Feature Requests</b></td>
  141. </tr>
  142. <tr>
  143. <tr>
  144. <td width="13%" valign="top"></td>
  145. <td width="87%" valign="top"></td>
  146. </tr>
  147. </table>
  148. <!-- --------- -->
  149. <h2>JACOB 1.16</h2>
  150. <h3>What's New</h3>
  151. <ul>
  152. <li>
  153. No new features
  154. </li>
  155. </ul>
  156. <h3>Tracked Changes</h3>
  157. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  158. <tr>
  159. <td colspan="2"><b>Bugs</b></td>
  160. </tr>
  161. <tr>
  162. <td width="13%" valign="top">3436143</td>
  163. <td width="87%" valign="top">(M2)Remove Main-Class from MANIFEST because there is no main class entry point for this jar file</td>
  164. </tr>
  165. <tr>
  166. <td width="13%" valign="top">3435567</td>
  167. <td width="87%" valign="top">(M2)Add HRESULT to error message when unknown COM error raised in Dispatch</td>
  168. </tr>
  169. <tr>
  170. <td width="13%" valign="top">&nbsp;</td>
  171. <td width="87%" valign="top">(M2)Added debug info to advise failure messages.</td>
  172. </tr>
  173. <tr>
  174. <td width="13%" valign="top">&nbsp;</td>
  175. <td width="87%" valign="top">(M2)Added support for null dispatch object in putVariantDispatch.</td>
  176. </tr>
  177. <tr>
  178. <td width="13%" valign="top">&nbsp;</td>
  179. <td width="87%" valign="top">(M2)Fixed memory leak in Variant.cpp zeroVariant method possibly related to previous fix proposed in SF 1689061 but never implemented. I guess we should fix it since people keep pointing it out</td>
  180. </tr>
  181. <tr>
  182. <td width="13%" valign="top">&nbsp;</td>
  183. <td width="87%" valign="top">(M2)Variant.getString() now returns null for NULL or EMPTY Variants instead of throwing exception.</td>
  184. </tr>
  185. <tr>
  186. <td width="13%" valign="top">3412922</td>
  187. <td width="87%" valign="top">(M1)Fix for: When a DispatchEvent is created with a COM object, the COM object is never released totally, and the destructor function is never called.</td>
  188. </tr>
  189. <tr>
  190. <td width="13%" valign="top">&nbsp;</td>
  191. <td width="87%" valign="top">&nbsp;</td>
  192. </tr>
  193. <tr>
  194. <td colspan="2"><b>Patches</b></td>
  195. </tr>
  196. <tr>
  197. <td width="13%" valign="top">3377279</td>
  198. <td width="87%" valign="top">(M1)Fix possible exception. Added initializing Variant used to retrieve
  199. the next value from IEnum
  200. because some implementations call VariantClear on it before setting a new value</td>
  201. </tr>
  202. <tr>
  203. <td width="13%" valign="top">&nbsp;</td>
  204. <td width="87%" valign="top">(M1)Isolate compilation of SafeArrayTest.java because it is UTF-16 and not UTF-8</td>
  205. </tr>
  206. <tr>
  207. <td width="13%" valign="top">&nbsp;</td>
  208. <td width="87%" valign="top">(M1)Changed windows version _WIN32_WINNT to 0x0500 to fix build with VS2010. (now 2000 or later)</td>
  209. </tr>
  210. <tr>
  211. <td width="13%" valign="top">&nbsp;</td>
  212. <td width="87%" valign="top">(M1)Fixed the leak in Java_com_jacob_com_Variant_putVariantNoParam</td>
  213. </tr>
  214. <tr>
  215. <td width="13%" valign="top">&nbsp;</td>
  216. <td width="87%" valign="top">(M1)Added Dispatch.Method to the invoke flags to call _NewEnum.
  217. There are some non-conforming legacy implementations that expose _NewEnum as a method.</td>
  218. </tr>
  219. <tr>
  220. <td width="13%" valign="top">&nbsp;</td>
  221. <td width="87%" valign="top">&nbsp;</td>
  222. </tr>
  223. <tr>
  224. <td colspan="2"><b>Feature Requests</b></td>
  225. </tr>
  226. <tr>
  227. <tr>
  228. <td width="13%" valign="top"></td>
  229. <td width="87%" valign="top"></td>
  230. </tr>
  231. </table>
  232. <!-- --------- -->
  233. <h2>JACOB 1.15</h2>
  234. <h3>What's New</h3>
  235. <ul>
  236. <li>
  237. MS Libraries are now statically linked using /MT instead of /MD to
  238. reduce issues library compatibility issues, especially on older platforms.
  239. The VC++ redistributable library no longer needs to be installed
  240. as a stand alone product.
  241. </li>
  242. </ul>
  243. <h3>Tracked Changes</h3>
  244. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  245. <tr>
  246. <td colspan="2"><b>Bugs</b></td>
  247. </tr>
  248. <tr>
  249. <td width="13%" valign="top">3065265</td>
  250. <td width="87%" valign="top">(M4)Bit masking in Variant.getXXXRef() uses wrong mask allowing more than
  251. one type to be seen as the requested type. Code that passed in the correct type always worked
  252. but invalid types were not always detected.</td>
  253. </tr>
  254. <tr>
  255. <td width="13%" valign="top">2935662</td>
  256. <td width="87%" valign="top">(M4)Error handling code crashes because of uninitialized data in Dispatch.cpp
  257. Check for NULL fails. pfnDeferredFillIn pointer is not initialized, but it's not NULL.</td>
  258. </tr>
  259. <tr>
  260. <td width="13%" valign="top">2819445</td>
  261. <td width="87%" valign="top">(M3)SafeArray.fromLongArray fails when using VariantLongInt</td>
  262. </tr>
  263. <tr>
  264. <td width="13%" valign="top">2847577</td>
  265. <td width="87%" valign="top">(M3) SafeArray#setString(*) incorrectly handles unicode strings</td>
  266. </tr>
  267. <tr>
  268. <td width="13%" valign="top">2721937</td>
  269. <td width="87%" valign="top">(M2)System.getProperties call caused security exception in applet.
  270. <i>com.jacob.includeAllClassesInROT</i> now acts as master switch for class/ROT control.
  271. This change also has the side benefit that the PutInROT property is not
  272. checked on every object creation for users who run in the standard
  273. <i>all classes in ROT</i> mode.</td>
  274. </tr>
  275. <tr>
  276. <td width="13%" valign="top">&nbsp;</td>
  277. <td width="87%" valign="top">&nbsp;</td>
  278. </tr>
  279. <tr>
  280. <td colspan="2"><b>Patches</b></td>
  281. </tr>
  282. <tr>
  283. <td width="13%" valign="top">2762275 </td>
  284. <td width="87%" valign="top">(M1)Support conversion of primitive arrays to Variant arrays.</td>
  285. </tr>
  286. <tr>
  287. <td width="13%" valign="top">2171967 </td>
  288. <td width="87%" valign="top">(M1)VariantUtils.populateVariant can cause VM crash with unrecognized type.</td>
  289. </tr>
  290. <tr>
  291. <td width="13%" valign="top">&nbsp;</td>
  292. <td width="87%" valign="top">&nbsp;</td>
  293. </tr>
  294. <tr>
  295. <td colspan="2"><b>Feature Requests</b></td>
  296. </tr>
  297. <tr>
  298. </tr>
  299. <td width="13%" valign="top">3137337</td>
  300. <td width="87%" valign="top">Add JNLP Applet example. Read the README to understand what jar
  301. file signing and file placement is required</td>
  302. <tr>
  303. <td width="13%" valign="top">2963102</td>
  304. <td width="87%" valign="top">(M4)Convert API to use var args and remove the many overloaded Dispatch
  305. methods that each added one more parameter.</td>
  306. </tr>
  307. <tr>
  308. <td width="13%" valign="top">2927058</td>
  309. <td width="87%" valign="top">(M4)a hasExited() method that allows polling until a COM server is
  310. terminated and implemented this method in JACOB</td>
  311. </tr>
  312. <tr>
  313. <td width="13%" valign="top">&nbsp;</td>
  314. <td width="87%" valign="top">&nbsp;</td>
  315. </tr>
  316. <tr>
  317. <td colspan="2"><b>Known Issues</b></td>
  318. </tr>
  319. <tr>
  320. <td width="13%" valign="top"></td>
  321. <td width="87%" valign="top"></td>
  322. </tr>
  323. </table>
  324. <!-- --------- -->
  325. <h2>JACOB 1.14.3</h2>
  326. <h3>Tracked Changes</h3>
  327. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  328. <tr>
  329. <td colspan="2"><b>Bugs</b></td>
  330. </tr>
  331. <tr>
  332. <td width="13%" valign="top">2011706</td>
  333. <td width="87%" valign="top">Fixed windows memory corruption unhooking
  334. call back proxy</td>
  335. </tr>
  336. <tr>
  337. <td width="13%" valign="top">1986987 </td>
  338. <td width="87%" valign="top">Possible deadlock when multiple threads starting
  339. and stopping that rely on implicit ComThread.InitMTA</td>
  340. </tr>
  341. <tr>
  342. <td width="13%" valign="top">&nbsp;</td>
  343. <td width="87%" valign="top">&nbsp;</td>
  344. </tr>
  345. <tr>
  346. <td colspan="2"><b>Patches</b></td>
  347. </tr>
  348. <tr>
  349. <td width="13%" valign="top">&nbsp;</td>
  350. <td width="87%" valign="top">&nbsp;</td>
  351. </tr>
  352. <tr>
  353. <td colspan="2"><b>Feature Requests</b></td>
  354. </tr>
  355. <tr>
  356. <td width="13%" valign="top">&nbsp;</td>
  357. <td width="87%" valign="top">&nbsp;</td>
  358. </tr>
  359. <tr>
  360. <td colspan="2"><b>Known Issues</b></td>
  361. </tr>
  362. <tr>
  363. <td width="13%" valign="top"></td>
  364. <td width="87%" valign="top"></td>
  365. </tr>
  366. </table>
  367. <!-- --------- -->
  368. <h2>JACOB 1.14.1</h2>
  369. <h3>Tracked Changes</h3>
  370. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  371. <tr>
  372. <td colspan="2"><b>Bugs</b></td>
  373. </tr>
  374. <tr>
  375. <td width="13%" valign="top">1919441</td>
  376. <td width="87%" valign="top">Type: loading 64 bit jacob.dll. Computed dll
  377. name includes space that is not in name of actual dll </td>
  378. </tr>
  379. <tr>
  380. <td width="13%" valign="top">&nbsp;</td>
  381. <td width="87%" valign="top">&nbsp;</td>
  382. </tr>
  383. <tr>
  384. <td colspan="2"><b>Patches</b></td>
  385. </tr>
  386. <tr>
  387. <td width="13%" valign="top">&nbsp;</td>
  388. <td width="87%" valign="top">&nbsp;</td>
  389. </tr>
  390. <tr>
  391. <td colspan="2"><b>Feature Requests</b></td>
  392. </tr>
  393. <tr>
  394. <td width="13%" valign="top">&nbsp;</td>
  395. <td width="87%" valign="top">&nbsp;</td>
  396. </tr>
  397. <tr>
  398. <td colspan="2"><b>Known Issues</b></td>
  399. </tr>
  400. <tr>
  401. <td width="13%" valign="top"></td>
  402. <td width="87%" valign="top"></td>
  403. </tr>
  404. </table>
  405. <!-- --------- -->
  406. <h2>JACOB 1.14</h2>
  407. <h3>What's New</h3>
  408. <ul>
  409. <li>
  410. Binaries are now compiled with Java 5. JDK 1.4 support dropped.
  411. </li>
  412. <li>
  413. Jacob now loads dlls based on platform (32 bit /64 bit) and version number.
  414. </li>
  415. </ul>
  416. <h3>Tracked Changes</h3>
  417. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  418. <tr>
  419. <td colspan="2"><b>Bugs</b></td>
  420. </tr>
  421. <tr>
  422. <td width="13%" valign="top">1857439</td>
  423. <td width="87%" valign="top">(M7) version.properties renamed to META-INF/JacobVersion.properties
  424. to remove collision with WebSphere version.properties.</td>
  425. </tr>
  426. <tr>
  427. <td width="13%" valign="top">1840487</td>
  428. <td width="87%" valign="top">(M6) toJavaObject() converting to SafeArray
  429. did shallow copy that left two objects pointing at the same windows memory.</td>
  430. </tr>
  431. <tr>
  432. <td width="13%" valign="top">1829201</td>
  433. <td width="87%" valign="top">(M5) DECIMAL rounding behavior externalized
  434. and old Variant decimal API restored.</td>
  435. </tr>
  436. <tr>
  437. <td width="13%" valign="top">1829201</td>
  438. <td width="87%" valign="top">(M5) DECIMAL rounding behavior externalized
  439. and old Variant decimal API restored.</td>
  440. </tr>
  441. <tr>
  442. <td width="13%" valign="top">1829201</td>
  443. <td width="87%" valign="top">(M4) Decimal type now throws IllegalArgumentException
  444. when more than 12 bytes worth the digits exist in BigDecimal. Rounding
  445. support added to reduce precision of BigDecimals when converting into VT_DECIMAL</td>
  446. </tr>
  447. <tr>
  448. <td width="13%" valign="top">1815163</td>
  449. <td width="87%" valign="top">(M2) Double and Decimal conversion to Int fails for negative values</td>
  450. </tr>
  451. <tr>
  452. <td width="13%" valign="top">&nbsp;</td>
  453. <td width="87%" valign="top">&nbsp;</td>
  454. </tr>
  455. <tr>
  456. <td colspan="2"><b>Patches</b></td>
  457. </tr>
  458. <tr>
  459. <td width="13%" valign="top">&nbsp;</td>
  460. <td width="87%" valign="top">&nbsp;</td>
  461. </tr>
  462. <tr>
  463. <td colspan="2"><b>Feature Requests</b></td>
  464. </tr>
  465. <tr>
  466. <td width="13%" valign="top">1845039 </td>
  467. <td width="87%" valign="top">(M7) Jacob DLL name can now be customized to
  468. support bundling of Jacob in other products.</td>
  469. </tr>
  470. <tr>
  471. <td width="13%" valign="top">1845039 </td>
  472. <td width="87%" valign="top">(M6) Jacob DLL names are now qualified by platform and
  473. release. The JacobLibraryLoader now determines the correct 32bit or 64bit
  474. dll based on the system architecture. Jacob.jar now also knows the version
  475. of the dll it is looking for (by name) and loads the correct one. JWS clients
  476. will have to modify their dll loaders. See: The JWS classloader sample </td>
  477. </tr>
  478. <tr>
  479. <td width="13%" valign="top">1828371 </td>
  480. <td width="87%" valign="top">(M4) Added VT_I8 support to SafeArray.</td>
  481. </tr>
  482. <tr>
  483. <td width="13%" valign="top">1813458</td>
  484. <td width="87%" valign="top">(M3) Expand type support. Changed currency support
  485. to use new Currency class. Added VT_I8 64 bit support. VT_I8 support
  486. requires Windows XP or later. VT_I8 not supported by windows in
  487. Windows 2000 and earlier. Added more primitive constructors to Variant.</td>
  488. </tr>
  489. <tr>
  490. <td width="13%" valign="top">1816863</td>
  491. <td width="87%" valign="top">(M1) Migrate Jacob to JDK 5</td>
  492. </tr>
  493. <tr>
  494. <td width="13%" valign="top">&nbsp;</td>
  495. <td width="87%" valign="top">&nbsp;</td>
  496. </tr>
  497. <tr>
  498. <td colspan="2"><b>Known Issues</b></td>
  499. </tr>
  500. <tr>
  501. <td width="13%" valign="top"></td>
  502. <td width="87%" valign="top">This is now built with Java 5 compiler and
  503. Java 5 syntax. This release is not compatible with JDK 1.4.x and earlier.</td>
  504. </tr>
  505. <tr>
  506. <td width="13%" valign="top"></td>
  507. <td width="87%" valign="top">This release requires the Visual C++ 2005
  508. libraries. See 1.13 Known Issues for more information.</td>
  509. </tr>
  510. </table>
  511. <!-- --------- -->
  512. <h2>JACOB 1.13</h2>
  513. <h3>What's New</h3>
  514. <ul>
  515. <li>
  516. Binaries compiled with with Visual Studio 2005 in place of VC98.
  517. </li>
  518. <li>
  519. Changed milestone release naming convention from "pre..." to "M..."
  520. </li>
  521. <li>
  522. The unittest directory now a JUnit 3.8.1 test repository
  523. </li>
  524. </ul>
  525. <h3>Tracked Changes</h3>
  526. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  527. <tr>
  528. <td colspan="2"><b>Bugs</b></td>
  529. </tr>
  530. <tr>
  531. <td width="13%" valign="top">1793362</td>
  532. <td width="87%" valign="top">(M5) ERROR_MORE_DATA causes failures. Fix submitted for defect found while porting
  533. Jameleon to use current release of Jacob. </td>
  534. </tr>
  535. <tr>
  536. <td width="13%" valign="top">1775889</td>
  537. <td width="87%" valign="top">(M4) Fixed leak SafeArray setString(int[],value) and other setString() methods</td>
  538. </tr>
  539. <tr>
  540. <td width="13%" valign="top">&nbsp;</td>
  541. <td width="87%" valign="top">&nbsp;</td>
  542. </tr>
  543. <tr>
  544. <td colspan="2"><b>Patches</b></td>
  545. </tr>
  546. <tr>
  547. <td width="13%" valign="top">1794811 </td>
  548. <td width="87%" valign="top">(M5) Support Unicode strings in COM failure messages</td>
  549. </tr>
  550. <tr>
  551. <td width="13%" valign="top">1793346</td>
  552. <td width="87%" valign="top">(M5) Replaced use of deprecated API and removed unused variables.</td>
  553. </tr>
  554. <tr>
  555. <td width="13%" valign="top">1701995 </td>
  556. <td width="87%" valign="top">(M2) Added option to exclude classes from ROT to
  557. try and manage memory in heavy event callback programs. Feature is 100%
  558. backwards compatible by default.
  559. </td>
  560. </tr>
  561. <tr>
  562. <td width="13%" valign="top">1709841 </td>
  563. <td width="87%" valign="top">(M1) Compiled with Visual Studio 2005. Jacob now requires
  564. 2005 or later libraries.
  565. See the UsingJacob.html file for impact this has on NT, 2000 and Server 2003 users.
  566. </td>
  567. </tr>
  568. <tr>
  569. <td width="13%" valign="top">&nbsp;</td>
  570. <td width="87%" valign="top">&nbsp;</td>
  571. </tr>
  572. <tr>
  573. <td colspan="2"><b>Feature Requests</b></td>
  574. </tr>
  575. <tr>
  576. <td width="13%" valign="top">1772783 </td>
  577. <td width="87%" valign="top">(M4) Added VT_DECIMAL support for BigDecimals whose scale less than 28 </td>
  578. </tr>
  579. <tr>
  580. <td width="13%" valign="top">1761727</td>
  581. <td width="87%" valign="top">(M3) unittest directory test programs
  582. converted to JUnit 3.8.1. New ANT target created to run all unit tests. </td>
  583. </tr>
  584. <tr>
  585. <td width="13%" valign="top">&nbsp;</td>
  586. <td width="87%" valign="top">&nbsp;</td>
  587. </tr>
  588. <tr>
  589. <td colspan="2"><b>Known Issues</b></td>
  590. </tr>
  591. <tr>
  592. <td width="13%" valign="top"></td>
  593. <td width="87%" valign="top">Jacob 1.13 is built using VC++ 2005.
  594. That creates a dependency on the Visual C++ 2005 libraries and msvcr80.dll.
  595. This library is normally installed on XP systems but may have to be manually
  596. installed on older systems. The pagackage, often referred to as vcredist.exe
  597. can be obtained from the MS downloads site.
  598. If you are getting loader errors on this release or later when loading the
  599. dll then you may be missing this library.</td>
  600. </tr>
  601. </table>
  602. <!-- --------- -->
  603. <h2>JACOB 1.12</h2>
  604. <h3>What's New</h3>
  605. <ul>
  606. <li>
  607. Now compiles with with Visual versions later than VC 98
  608. </li>
  609. </ul>
  610. <h3>Tracked Changes</h3>
  611. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
  612. <tr>
  613. <td colspan="2"><b>Bugs</b></td>
  614. </tr>
  615. <tr>
  616. <td width="13%" valign="top">1651926 </td>
  617. <td width="87%" valign="top">(pre-release 1) ActiveXComponent: getPropertyAsString should call getString() instead of toString()</td>
  618. </tr>
  619. <tr>
  620. <td width="13%" valign="top">1569864 </td>
  621. <td width="87%" valign="top">(pre-release 1) IEnumVariant leak fixed in patch 1674179</td>
  622. </tr>
  623. <tr>
  624. <td width="13%" valign="top">1112667</td>
  625. <td width="87%" valign="top">(pre-release 1) IEnumVariant leak fixed in patch 1674179</td>
  626. </tr>
  627. <tr>
  628. <td width="13%" valign="top">1465539</td>
  629. <td width="87%" valign="top">(pre-release 1) IEnumVariant leak fixed in patch 1674179</td>
  630. </tr>
  631. <tr>
  632. <td width="13%" valign="top">1699946 </td>
  633. <td width="87%" valign="top">(pre-release 5) Unrecognized event callback id leaves thread attached to VM when ComFailException is thrown.</td>
  634. </tr>
  635. <tr>
  636. <td width="13%" valign="top">1699965 </td>
  637. <td width="87%" valign="top">(pre-release 5) toJavaObject() fails for Dispatch because getDispatchRef() called instead of getDispatch().</td>
  638. </tr>
  639. <tr>
  640. <td width="13%" valign="top">&nbsp;</td>
  641. <td width="87%" valign="top">&nbsp;</td>
  642. </tr>
  643. <tr>
  644. <td colspan="2"><b>Patches</b></td>
  645. </tr>
  646. <tr>
  647. <td width="13%" valign="top">1674015</td>
  648. <td width="87%" valign="top">(pre-release 1) ROT hashmap key generation when autogc=no (default)
  649. can lead to key collisions in hashmap. This causes objects to be garbage finalized
  650. when they shouldn't be resulting in vm failures with large (large) numbers of objects. </td>
  651. </tr>
  652. <tr>
  653. <td width="13%" valign="top">1674179</td>
  654. <td width="87%" valign="top">(pre-release 1) Fixed Enum leaks with EnumVariants in Variant.cpp and EnumVariant.cpp</td>
  655. </tr>
  656. <tr>
  657. <td width="13%" valign="top">1687419</td>
  658. <td width="87%" valign="top">(pre-release 3) Corrected calls to AttachCurrentThread in EventProxy</td>
  659. </tr>
  660. <tr>
  661. <td width="13%" valign="top">1689061 </td>
  662. <td width="87%" valign="top">(pre-release 4) C code changes to fix VC2003 compiler warnings.</td>
  663. </tr>
  664. <tr>
  665. <td width="13%" valign="top">1690420</td>
  666. <td width="87%" valign="top">(pre-release 4) Incorrect memcpy lengths for Currency Variants</td>
  667. </tr>
  668. <tr>
  669. <td width="13%" valign="top">1650134</td>
  670. <td width="87%" valign="top">(pre-release 6) Beta support for VT_VARIANT (VariantVariant).
  671. Includes support for putVariant, getVariant, toJavaObject, Variant(Object,flag).
  672. Enclosed variants are retreived as Java objects. </td>
  673. </tr>
  674. <tr>
  675. <td width="13%" valign="top">&nbsp;</td>
  676. <td width="87%" valign="top">&nbsp;</td>
  677. </tr>
  678. <tr>
  679. <td colspan="2"><b>Feature Requests</b></td>
  680. </tr>
  681. <tr>
  682. <td width="13%" valign="top">1662887</td>
  683. <td width="87%" valign="top">(pre-release 1) Dispatch static methods should throw runtime exceptions when
  684. null is passed in for the Dispatch object and when the Dispatch object is in an invalid state. </td>
  685. </tr>
  686. <tr>
  687. <td width="13%" valign="top">1702604 </td>
  688. <td width="87%" valign="top">(pre-release 6) Support java semantics in event callbacks. Create
  689. ActiveXInvocationProxy and ActiveXDispatchEvents that provide the supplemental API.
  690. See IETestActiveXProxy.java for an example.
  691. </td>
  692. </tr>
  693. <tr>
  694. <td width="13%" valign="top">&nbsp;</td>
  695. <td width="87%" valign="top">&nbsp;</td>
  696. </tr>
  697. <tr>
  698. <td colspan="2"><b>Known Issues</b></td>
  699. </tr>
  700. <tr>
  701. <td width="13%" valign="top">1504120</td>
  702. <td width="87%" valign="top"><em>Identified 1.11.1</em> Microsoft 2003 Server crashes. Server crashes on MS 2003 Server have been reported over time.
  703. Some users have had say that Jacob must be built on MS2003 Server to run reliably.
  704. The Jacob distribution on Sourceforge is built on Windows XP SP2</td>
  705. </tr>
  706. <tr>
  707. <td width="13%" valign="top">1677933</td>
  708. <td width="87%" valign="top"><em>Identified 1.11.1</em> Process affinity may have to be set on
  709. dual core machines to avoid com exceptions.</td>
  710. </tr>
  711. <tr>
  712. <td width="13%" valign="top">no ticket</td>
  713. <td width="87%" valign="top"><em>Identified 1.11.1</em> Versions of JDK 1.5 prior to 1.5_10 are known to leak JNI handles.
  714. See the Sun bug tracking system http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399321 for more details.
  715. </td>
  716. </tr>
  717. </table>
  718. <!-- --------- -->
  719. <h2>JACOB 1.11.1</h2>
  720. <h3>What's New</h3>
  721. Bug fix release
  722. <h3>Tracked Changes</h3>
  723. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  724. <tr>
  725. <td colspan="2"><b>Bugs</b></td>
  726. </tr>
  727. <tr>
  728. <td width="13%" valign="top">1602188</td>
  729. <td width="87%" valign="top">Variant toString() causes stack overflow for byRef() Variants
  730. (This show stopper defect forced the 1.11.1 release)</td>
  731. </tr>
  732. <tr>
  733. <td width="13%" valign="top">1611487</td>
  734. <td width="87%" valign="top">Variant toJavaObject() doesn't work for byRef Variables and
  735. returned the wrong value for unrecognized Variant types.</td>
  736. </tr>
  737. <tr>
  738. <td width="13%" valign="top">1607878</td>
  739. <td width="87%" valign="top">Variant getJavaDateRef() fails.</td>
  740. </tr>
  741. <tr>
  742. <td width="13%" valign="top">&nbsp;</td>
  743. <td width="87%" valign="top">&nbsp;</td>
  744. </tr>
  745. <tr>
  746. <td colspan="2"><b>Patches</b></td>
  747. </tr>
  748. <tr>
  749. <td width="13%" valign="top">SF1603631</td>
  750. <td width="87%" valign="top">Concurrent modification of ROT causes VM crashes. Access
  751. to the ROT has been sychronized. No performance impact analysis has been done</td>
  752. </tr>
  753. <tr>
  754. <td width="13%" valign="top">&nbsp;</td>
  755. <td width="87%" valign="top">&nbsp;</td>
  756. </tr>
  757. <tr>
  758. <td colspan="2"><b>Feature Requests</b></td>
  759. </tr>
  760. <tr>
  761. <td width="13%" valign="top">&nbsp;</td>
  762. <td width="87%" valign="top">&nbsp;</td>
  763. </tr>
  764. </table>
  765. <!-- --------- -->
  766. <h2>JACOB 1.11</h2>
  767. <h3>What's New</h3>
  768. <ul>
  769. <li>
  770. <b>Build</b>
  771. <ul>
  772. <li>Build process now notifies developer if version property missing</li>
  773. <li>Build process now compiles 32 bit and/or 64 bit DLLs as appropriate
  774. for the build environment.</li>
  775. </ul>
  776. </li>
  777. <li>
  778. <b>API Changes</b>
  779. <ul>
  780. <li>Variant.noParam() changed to Variant.putNoParam()
  781. <li>Variant.toString() now follows normal java semantics.
  782. This conflicted with the jacob toXXX() standard.
  783. <li>Many Variant.toXXX() did type conversion in addition to a get. The
  784. methods have deprecated because folks didn't realize
  785. they were doing type conversion.
  786. Most calls to toXXX() methods should actually be getXXX() calls.
  787. This also allowed toString() to follow Java conventions
  788. <li>Variant native methods are wrapped with java methods that do parameter and
  789. state checking to better armor the Variant
  790. </ul>
  791. </li>
  792. </ul>
  793. <h3>Tracked Changes</h3>
  794. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  795. <tr>
  796. <td colspan="2"><b>Bugs</b></td>
  797. </tr>
  798. <tr>
  799. <td width="13%" valign="top">1550604</td>
  800. <td width="87%" valign="top">Build process died with confusing error if version not set in properties file(pre1)</td>
  801. </tr>
  802. <tr>
  803. <td width="13%" valign="top">1511033</td>
  804. <td width="87%" valign="top">Fix array index out of bounds problem due to coding error (pre1)</td>
  805. </tr>
  806. <tr>
  807. <td width="13%" valign="top">1570270 </td>
  808. <td width="87%" valign="top">~Event method in EventProxy may unhook java thread from VM.
  809. Can get JNI error because unhooking listner detatched Java VM thread (pre1)</td>
  810. </tr>
  811. <tr>
  812. <td width="13%" valign="top">1538011 </td>
  813. <td width="87%" valign="top">toString() non compliant with java standards. The toString() method
  814. converted the underlying data to a string and it shouldn't. This caused
  815. a rethinking of all toXXX() methods other than toDispatch(). Most of the
  816. toXXX() methods have now been deprecated and should be replaced with getXXX() methods.
  817. (pre1)</td>
  818. </tr>
  819. <tr>
  820. <td width="13%" valign="top">1478162</td>
  821. <td width="87%" valign="top">Variant does not warn user if methods called after released.
  822. All putXXX() and getXXX() methods now check to see if they've been released
  823. prior to calling the JNI code. toXXX() methods are deprecated but protected
  824. in the same way.(pre1)</td>
  825. </tr>
  826. <tr>
  827. <td width="13%" valign="top">&nbsp;</td>
  828. <td width="87%" valign="top">&nbsp;</td>
  829. </tr>
  830. <tr>
  831. <td colspan="2"><b>Patches</b></td>
  832. </tr>
  833. <tr>
  834. <td width="13%" valign="top">SF1493647</td>
  835. <td width="87%" valign="top">Support command line parameter dll location specification.
  836. Applets and other tools can now specificy the dll location that
  837. is fed to a System.load() rather than System.loadLibrary for the
  838. situation where the app can't write the dll to a library path directory.(pre1)</td>
  839. </tr>
  840. <tr>
  841. <td width="13%" valign="top">&nbsp;</td>
  842. <td width="87%" valign="top">&nbsp;</td>
  843. </tr>
  844. <tr>
  845. <td colspan="2"><b>Feature Requests</b></td>
  846. </tr>
  847. <tr>
  848. <td width="13%" valign="top">1580993</td>
  849. <td width="87%" valign="top">Modify the build process to support 64 bit dll construction(pre2)</td>
  850. </tr>
  851. <tr>
  852. <td width="13%" valign="top">1550628</td>
  853. <td width="87%" valign="top">Moved all LoadLibrary requests into LibraryLoader. Classes not subclassed
  854. off of JacobObject make calls to a static method on LibraryLoader to make sure
  855. DLL is loaded(pre1)</td>
  856. </tr>
  857. </table>
  858. <!-- --------- -->
  859. <h2>JACOB 1.10.1</h2>
  860. <h3>What's New</h3>
  861. <ul>
  862. <li>
  863. <b>Variants</b>
  864. <ul>
  865. <li>Static constnats are no longer released
  866. <li>obj2variant on Dispatch now supports passing a java.util.Date
  867. </ul>
  868. </li>
  869. </ul>
  870. <h3>Tracked Changes</h3>
  871. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  872. <tr>
  873. <td colspan="2"><b>Bugs</b></td>
  874. </tr>
  875. <tr>
  876. <td width="13%" valign="top">1474474</td>
  877. <td width="87%" valign="top">Static constants in the Variant class can no longer have SafeRelease() called on them.</td>
  878. </tr>
  879. <tr>
  880. <td width="13%" valign="top">1477793</td>
  881. <td width="87%" valign="top">obj2variant should accept java.util.Date the same way the Variant constructor does</td>
  882. </tr>
  883. <tr>
  884. <td width="13%" valign="top">&nbsp;</td>
  885. <td width="87%" valign="top">&nbsp;</td>
  886. </tr>
  887. <tr>
  888. <td colspan="2"><b>Patches</b></td>
  889. </tr>
  890. <tr>
  891. <td width="13%" valign="top">&nbsp;</td>
  892. <td width="87%" valign="top">&nbsp;</td>
  893. </tr>
  894. <tr>
  895. <td colspan="2"><b>Feature Requests</b></td>
  896. </tr>
  897. </table>
  898. <!-- ++++++++++++++++++++++++++++++ -->
  899. <h2>JACOB 1.10</h2>
  900. <h3>What's New</h3>
  901. <ul>
  902. <li>
  903. <b>Windows Processes</b>
  904. <ul>
  905. <li>New proposed API to support ActiveXComponent connections to already running applications.
  906. Factory methods have been added to the ActiveXComponent to support this.
  907. (Feedback wanted)
  908. </ul>
  909. </li>
  910. <li>
  911. <b>Variants</b>
  912. <ul>
  913. <li>Variant now accept Java Dates in the constructor.
  914. <li>Redundant constructors removed
  915. <li>Experimental toJavaObject() method added that automatically
  916. converts to appropriate java type
  917. <li>Support added for "NOTHING", a Variant of type Dispatch with no value
  918. <li>Non functional getNull() and getEmpty() methods deprecated. They were void methods
  919. </ul>
  920. </li>
  921. <li>
  922. <b>Event Callbacks</b>
  923. <ul>
  924. <li>Jacob normally uses information in the registry to find the connection
  925. information needed to set up event callbacks. Excel and other programs
  926. don't put that information in the registry. A new optional parameter
  927. has been added to the DispatchEvents constructors that lets a user provide
  928. the location of the OLB or EXE that contains the information required to
  929. retrieve the events.
  930. <li>Event handlers can now return a Variant to calling MS Windows program.
  931. Event handlers that do not return an object should still be defined
  932. as being of type "void". This means that support for event handler's returning
  933. values should be backwards compatible with previous releases.
  934. </ul>
  935. </li>
  936. </ul>
  937. <h3>Tracked Changes</h3>
  938. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  939. <tr>
  940. <td colspan="2"><b>Bugs</b></td>
  941. </tr>
  942. <tr>
  943. <td width="13%" valign="top">1340233</td>
  944. <td width="87%" valign="top">Null Program Id in Dispatch Constructor does bad things to VM(pre1)</td>
  945. </tr>
  946. <tr>
  947. <td width="13%" valign="top">1341763</td>
  948. <td width="87%" valign="top">Removed Variant serializable interface because it is not
  949. actually serializable on 2000/xp(pre1)</td>
  950. </tr>
  951. <tr>
  952. <td width="13%" valign="top">1435215</td>
  953. <td width="87%" valign="top">Incorrect memory release in SafeArray.cpp (pre4)
  954. </tr>
  955. <tr>
  956. <td width="13%" valign="top">1224219</td>
  957. <td width="87%" valign="top">Memory leak in SafeArray.GetString()
  958. Olivier Laurent, Software AG Luxembourg and David Pierron, Software AG Luxembourg (pre3)</td>
  959. </tr>
  960. <tr>
  961. <td width="13%" valign="top">1224219</td>
  962. <td width="87%" valign="top">Change from UTF to UNICODE SafeArray.fromStringArray()
  963. Olivier Laurent, Software AG Luxembourg and David Pierron, Software AG Luxembourg (pre3)</td>
  964. </tr>
  965. <tr>
  966. <td width="13%" valign="top">&nbsp;</td>
  967. <td width="87%" valign="top">&nbsp;</td>
  968. </tr>
  969. <tr>
  970. <td colspan="2"><b>Patches</b></td>
  971. </tr>
  972. <tr>
  973. <td width="13%" valign="top">1386454</td>
  974. <td width="87%" valign="top">Return values from event callbacks (pre3)</td>
  975. </tr>
  976. <tr>
  977. <td width="13%" valign="top">1394001</td>
  978. <td width="87%" valign="top">Missing variable initialization (pre3)</td>
  979. </tr>
  980. <tr>
  981. <td width="13%" valign="top">1208570</td>
  982. <td width="87%" valign="top">Support Excel and other objects events(pre1)</td>
  983. </tr>
  984. <tr>
  985. <td width="13%" valign="top">&nbsp;</td>
  986. <td width="87%" valign="top">&nbsp;</td>
  987. </tr>
  988. <tr>
  989. <td colspan="2"><b>Feature Requests</b></td>
  990. </tr>
  991. <tr>
  992. <td width="13%" valign="top">1241037</td>
  993. <td width="87%" valign="top">Support NULL VT_DISPATCH.(pre2)</td>
  994. </tr>
  995. <tr>
  996. <td width="13%" valign="top">1169851 </td>
  997. <td width="87%" valign="top">Support of VB's Nothing.(pre2)</td>
  998. </tr>
  999. <tr>
  1000. <td width="13%" valign="top">1185167</td>
  1001. <td width="87%" valign="top">Provide methods to connect to running instance.(pre1)</td>
  1002. </tr>
  1003. <tr>
  1004. <td width="13%" valign="top">959381</td>
  1005. <td width="87%" valign="top">Auto variant to object conversion method method added to Variant.(pre1)</td>
  1006. </tr>
  1007. <tr>
  1008. <td width="13%" valign="top">1341779</td>
  1009. <td width="87%" valign="top">Variant should accept java.util.Date in Variant(Object) constructor(pre1)</td>
  1010. </tr>
  1011. </table>
  1012. <!-- ++++++++++++++++++++++++++++++ -->
  1013. <h2>JACOB 1.9.1</h2>
  1014. <h3>What's New</h3>
  1015. <ul>
  1016. <li>
  1017. <b>License</b>
  1018. <ul>
  1019. <li>License standardized on LGPL. See LICENSE.TXT for more information
  1020. </ul>
  1021. </li>
  1022. <li>
  1023. <b>Event Callbacks</b>
  1024. <ul>
  1025. <li>Event handlers are now wrapped in an InvocationProxy. The COM/JNI event
  1026. code knows only about InvocationProxies and calls the appropriate methods
  1027. on the Invocation proxy to get needed Variant instances and to forward
  1028. events to the Java layer.
  1029. </ul>
  1030. </li>
  1031. <li>
  1032. <b>Variants</b>
  1033. <ul>
  1034. <li>Automatic conversion between Windows Time and Java Date is now supported
  1035. in Variant object.
  1036. </ul>
  1037. </li>
  1038. <li>
  1039. <b>SafeArray</b>
  1040. <ul>
  1041. <li>Multi-dimensional (greater than 2) support
  1042. </ul>
  1043. </li>
  1044. </ul>
  1045. <h3>Tracked Changes</h3>
  1046. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  1047. <tr>
  1048. <td colspan="2"><b>Bugs</b></td>
  1049. </tr>
  1050. <tr>
  1051. <td width="13%" valign="top">1335897 </td>
  1052. <td width="87%" valign="top">SafeArray() called toString() on objects when debug was turned on</td>
  1053. </tr>
  1054. <tr>
  1055. <td width="13%" valign="top">&nbsp;</td>
  1056. <td width="87%" valign="top">&nbsp;</td>
  1057. </tr>
  1058. <tr>
  1059. <td colspan="2"><b>Patches</b></td>
  1060. </tr>
  1061. <tr>
  1062. <td width="13%" valign="top">1314116 </td>
  1063. <td width="87%" valign="top"> putString UNICODE string length not detected</td>
  1064. </tr>
  1065. <tr>
  1066. <td width="13%" valign="top">&nbsp;</td>
  1067. <td width="87%" valign="top">&nbsp;</td>
  1068. </tr>
  1069. <tr>
  1070. <td colspan="2"><b>Feature Requests</b></td>
  1071. </tr>
  1072. <tr>
  1073. <td width="13%" valign="top">1264850</td>
  1074. <td width="87%" valign="top">Custom Event Dispatching</td>
  1075. </tr>
  1076. <tr>
  1077. <td width="13%" valign="top">959382</td>
  1078. <td width="87%" valign="top">Time Conversion</td>
  1079. </tr>
  1080. <tr>
  1081. <td width="13%" valign="top">1313892 </td>
  1082. <td width="87%" valign="top">Multi-Dimensional SafeArray</td>
  1083. </tr>
  1084. </table>
  1085. <!-- ++++++++++++++++++++++++++++++ -->
  1086. <h2>JACOB 1.9</h2>
  1087. <h3>What's New</h3>
  1088. <ul>
  1089. <li>
  1090. <b>Event Callbacks</b>
  1091. <ul>
  1092. <li>Variant parameters can now be modified by the receiver to be passed
  1093. back to the COM caller </li>
  1094. <li>Callbacks now create objects of class VariantViaEvent rather than Variant.
  1095. This was aided to add debugging and tracing</li>
  1096. <li>Callbacks can now be received when running in JWS other launchers where
  1097. JACOB.jar is not in the system classloader's path.</li>
  1098. </ul>
  1099. </li>
  1100. <li>
  1101. <b>Dispatch API Clarifications</B>
  1102. <ul>
  1103. <li>All static method's first parameters have been more strongly typed
  1104. to the Dispatch class, rather than Object. This may call for code
  1105. changes in the cases of code that just asigned Dispatch objects
  1106. to variables of type Object rather than Dispatch or one of its subclasses </li>
  1107. </ul>
  1108. </li>
  1109. <li>
  1110. <b>Dispatch subclasses are now supported with pointer modifying constructor</b>
  1111. <ul>
  1112. <li>Dispatch and ActiveXComponent now includes a constructor to be used by Dispatch subclasses
  1113. that swaps the pointers around. This eliminates the need for every Dispatch subclass
  1114. to have a constructor that swapped and nulled out the pointers to the COM layer.
  1115. All samples have updated to use the new api </li>
  1116. </ul>
  1117. </li>
  1118. <li>
  1119. <b>ActiveXComponent has been upgraded</b><ul>
  1120. <li>ActiveXComponent methods return ActiveXComponets </li>
  1121. <li>Methods have been added to the ActiveXComponents to retrieve
  1122. parameters as Dispatch objects or ActiveX components. The
  1123. Script Tests have been updated to show the same programs in Dispatch
  1124. format or ActiveXComponentFormat </li>
  1125. </ul>
  1126. </li>
  1127. <li>
  1128. <b>Memory Management</b>
  1129. <ul>
  1130. <li>Beta test option that lets an application use automatic object object
  1131. removal through the use of weak reference hash maps in the ROT class.&nbsp; The
  1132. default behavior of manual release via the COMThread class has been retained as
  1133. the default behavior.&nbsp; Developers can test automatic memory collection by
  1134. using the command line option <i>-Dcom.JACOB.autogc=true</i> </li>
  1135. </ul>
  1136. </li>
  1137. <li>
  1138. <b>JNI Changes</b>
  1139. <ul>
  1140. <li>Erroneous Array dimension checking fixed for certain boolean set and get functions
  1141. </li>
  1142. <li>Alternative method for finding Variant class for callbacks in JWS
  1143. or other application lanchers where the system classloader does not
  1144. know about JACOB classes. </li>
  1145. <li>Unicode is supported for putString and putStringRef</li>
  1146. <li>EventProxy zeros out the com object reference in the Variant objects
  1147. that are created by EventProxy so that they are not double released,
  1148. by both the Java VM and calling code from the COM side. The caller
  1149. is supposed to be responsible for releasing the memory it created.
  1150. This fix only applies to Variants created in callbacks. </li>
  1151. </ul>
  1152. </li>
  1153. <li>
  1154. <b>Logging Additions</b><ul>
  1155. <li>Debugging logging to standard out for JACOB can be turned on by using the
  1156. command line option <i>-Dcom.JACOB.debug=true</i></li>
  1157. </ul>
  1158. </li>
  1159. <li>
  1160. <b>Visual Studio</b><ul>
  1161. <li>The VisualStudio directory in the CVS repository will be removed in the next
  1162. release</li>
  1163. </ul>
  1164. </li>
  1165. <li>
  1166. <b>Documentation</b><ul>
  1167. <li>API documentation via Javadoc&nbsp; is now being generated for all classes.</li>
  1168. <li>The development team is looking for help in upgrading the quality of the
  1169. class documentation</li>
  1170. </ul>
  1171. </li>
  1172. <li>
  1173. <b>Build Changes</b>
  1174. <ul>
  1175. <li>A static method has been added to JacobObject that returns the build version</li>
  1176. <li>The project is now being built using ANT.&nbsp; Most of the developers are
  1177. running this from inside of Eclipse</li>
  1178. <li>All makefiles have been purged</li>
  1179. </ul>
  1180. <h3>Tracked Changes</h3>
  1181. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  1182. <tr>
  1183. <td colspan="2"><b>Bugs</b></td>
  1184. </tr>
  1185. <tr>
  1186. <td width="13%" valign="top">1116101</td>
  1187. <td width="87%" valign="top">jacob-msg 0284 : Access Violation while garbage collecting</td>
  1188. </tr>
  1189. <tr>
  1190. <td width="13%" valign="top">1114159</td>
  1191. <td width="87%" valign="top">Problem with COM Error Trapping in JACOB DLL</td>
  1192. </tr>
  1193. <tr>
  1194. <td width="13%" valign="top">1113610</td>
  1195. <td width="87%" valign="top">Bad error check in SafeArray.cpp</td>
  1196. </tr>
  1197. <tr>
  1198. <td width="13%" valign="top">1066698</td>
  1199. <td width="87%" valign="top">Minor Memory leak in Dispatch.cpp</td>
  1200. </tr>
  1201. <tr>
  1202. <td width="13%" valign="top">1065533</td>
  1203. <td width="87%" valign="top">Problem with unicode conversion</td>
  1204. </tr>
  1205. <tr>
  1206. <td width="13%" valign="top">1053871</td>
  1207. <td width="87%" valign="top">solution for memory leak in 1.7</td>
  1208. </tr>
  1209. <tr>
  1210. <td width="13%" valign="top">1053870</td>
  1211. <td width="87%" valign="top">JACOB0msg 2019 - Safe Array</td>
  1212. </tr>
  1213. <tr>
  1214. <td width="13%" valign="top">1053866</td>
  1215. <td width="87%" valign="top">getHResult only returns 80020009</td>
  1216. </tr>
  1217. <tr>
  1218. <td width="13%" valign="top">960646</td>
  1219. <td width="87%" valign="top">But in SafeArray:: getBoolean for 2D arrays</td>
  1220. </tr>
  1221. <tr>
  1222. <td width="13%" valign="top">&nbsp;</td>
  1223. <td width="87%" valign="top">&nbsp;</td>
  1224. </tr>
  1225. <tr>
  1226. <td colspan="2"><b>Patches</b></td>
  1227. </tr>
  1228. <tr>
  1229. <td width="13%" valign="top">1115187</td>
  1230. <td width="87%" valign="top">EventCallbacks fail w/Variant ClassNotFoundException in JWS</td>
  1231. </tr>
  1232. <tr>
  1233. <td width="13%" valign="top">1105915</td>
  1234. <td width="87%" valign="top">Fix for event handling memory corruption</td>
  1235. </tr>
  1236. <tr>
  1237. <td width="13%" valign="top">1090104</td>
  1238. <td width="87%" valign="top">Weak Reference in teh ROT</td>
  1239. </tr>
  1240. <tr>
  1241. <td width="13%" valign="top">1068544</td>
  1242. <td width="87%" valign="top">in/out parameter support for event handlers</td>
  1243. </tr>
  1244. <tr>
  1245. <td width="13%" valign="top">981540</td>
  1246. <td width="87%" valign="top">jre 1.4.2 fix as patch</td>
  1247. </tr>
  1248. <tr>
  1249. <td width="13%" valign="top">&nbsp;</td>
  1250. <td width="87%" valign="top">&nbsp;</td>
  1251. </tr>
  1252. <tr>
  1253. <td colspan="2"><b>Feature Requests</b></td>
  1254. </tr>
  1255. <tr>
  1256. <td width="13%" valign="top">1049390</td>
  1257. <td width="87%" valign="top">static Version information</td>
  1258. </tr>
  1259. <tr>
  1260. <td width="13%" valign="top">1049224</td>
  1261. <td width="87%" valign="top">Javadocs or at least script to generate it</td>
  1262. </tr>
  1263. <tr>
  1264. <td width="13%" valign="top">1049158</td>
  1265. <td width="87%" valign="top">API to get ProgId of ActiveXComponent</td>
  1266. </tr>
  1267. <tr>
  1268. <td width="13%" valign="top">&nbsp;</td>
  1269. <td width="87%" valign="top">&nbsp;</td>
  1270. </tr>
  1271. </table>
  1272. </li>
  1273. </ul>
  1274. <h2>JACOB 1.8</h2>
  1275. <h3>What's New</h3>
  1276. <ul>
  1277. <li>
  1278. <b>Move To SourceForge</b>
  1279. The project is not housed at
  1280. <a href="http://sourceforge.net/projects/jacob-project/">Sourceforge.net</a>.
  1281. </li>
  1282. <li>
  1283. <b>Licensing Change</b>
  1284. All limitations on commercial use of JACOB have been removed and it
  1285. is now being developed under a BSD license at
  1286. <a href="http://sourceforge.net/projects/jacob-project/">Sourceforge.net</a>.
  1287. </li>
  1288. <li>
  1289. <b>Compiled with Java 1.4.2</b>
  1290. Version 1.8 was compiled with JSEE 1.4.2 and fixes the compilation bug
  1291. that was remnant of compilation with JDK 1.1.
  1292. </li>
  1293. <li>
  1294. <b>Baseline For Change</b>
  1295. This version is the baseline for the first CVS checkin and we encourage
  1296. people to start contributing to the project with this version.
  1297. </li>
  1298. </ul>
  1299. <li>
  1300. <h2>JACOB 1.7</h2>
  1301. <h3>What's New</h3>
  1302. <ul>
  1303. <li>
  1304. <b>Explicit COM Threading Model Support:</b>
  1305. See a detailed discussion of
  1306. <a href="JacobThreading.html">COM Apartments in JACOB</a>
  1307. </li>
  1308. <li>
  1309. <b>New COM Object Lifetime model:</b>
  1310. See a detailed discussion of
  1311. <a href="JacobComLifetime.html">COM Object Lifetime in JACOB</a>.
  1312. </li>
  1313. <li>
  1314. <b>Improved Event Handling:</b>
  1315. Thanks to code contributed by
  1316. <a href="mailto:n.o.bouvin@daimi.au.dk">
  1317. Niels Olof Bouvin</a>
  1318. and <a href="mailto:jehoej@daimi.au.dk">Henning Jae</a> JACOB 1.7 can
  1319. read the type information of a Connection Point interface by looking
  1320. it up in the registry. This makes it possible to use events with IE as
  1321. well as office products.
  1322. </li>
  1323. <li>
  1324. <b>Improved Dispatch:</b>
  1325. Error messages from Invoke failures are now printed out as well as
  1326. allowing the passing in of arguments to a Get method.
  1327. </li>
  1328. <li>
  1329. <b>EnumVariant Implementation:</b>
  1330. Makes it easier to iterate over COM collections. Thanks to code
  1331. contributed by
  1332. <a href="mailto:Thomas.Hallgren@eoncompany.com">Thomas Hallgren</a>.
  1333. </li>
  1334. <li>
  1335. <b>SafeArray leaks:</b>
  1336. SafeArrays were not being properly freed prior to version 1.7, many
  1337. other memory leaks were fixed as well.
  1338. </li>
  1339. <li>
  1340. <b>Visual Studio Project:</b>
  1341. For those who want to debug: vstudio/JACOB. At the moment all the
  1342. native code is replicated there from the jni directory...
  1343. </li>
  1344. </ul>
  1345. <h2>Related Links</h2>
  1346. <ul>
  1347. <li>
  1348. The best way to get support or the latest version of JACOB is on
  1349. <a href="http://sourceforge.net/projects/jacob-project">
  1350. http://sourceforge.net/projects/jacob-project </a>
  1351. <b>This is the preferred way to get support for JACOB</b>. It also
  1352. includes an extensive archive. If you are doing any development with
  1353. JACOB, please join sourceforge.
  1354. <li>
  1355. Massimiliano Bigatti has developed
  1356. <a href="http://sourceforge.net/projects/jacob-project">
  1357. JACOBgen - a generator that automatically creates JACOB code from
  1358. Type Libraries, now available on sourceforge</a>
  1359. </li>
  1360. <li>
  1361. Steven Lewis is developing a version of Java2Com that supports JACOB
  1362. code generation. See:
  1363. <a href="http://www.lordjoe.com/Java2Com/index.html">
  1364. http://www.lordjoe.com/Java2Com/index.html</a>.
  1365. <li>
  1366. To find documentation on the com.ms.com package, go to:
  1367. <a href="http://www.microsoft.com/java/download/dl_sdk40.htm">
  1368. http://www.microsoft.com/java/download/dl_sdk40.htm</a>
  1369. and at the bottom of the page is a link that says:
  1370. Microsoft SDK for Java 4.0 Documentation Only. You should download
  1371. that file and install it. Then, view sdkdocs.chm and look for
  1372. "Microsoft Packages Reference". Hopefully, the next release of
  1373. JACOB will include full javadoc (volunteers?)...</li>
  1374. </BODY>
  1375. </HTML>