811 lines
26 KiB
HTML
811 lines
26 KiB
HTML
<HTML>
|
|
<BODY>
|
|
<!-- --------- -->
|
|
<h2>JACOB 1.12</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
<li>
|
|
<b>Now compiles with with Visual versions later than VC 98</b>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" >
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1651926 </td>
|
|
<td width="87%" valign="top">(pre-release 1) ActiveXComponent: getPropertyAsString should call getString() instead of toString()</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1569864 </td>
|
|
<td width="87%" valign="top">(pre-release 1) IEnumVariant leak fixed in patch 1674179</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1112667</td>
|
|
<td width="87%" valign="top">(pre-release 1) IEnumVariant leak fixed in patch 1674179</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1465539</td>
|
|
<td width="87%" valign="top">(pre-release 1) IEnumVariant leak fixed in patch 1674179</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1699946 </td>
|
|
<td width="87%" valign="top">(pre-release 5) Unrecognized event callback id leaves thread attached to VM when ComFailException is thrown.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1674015</td>
|
|
<td width="87%" valign="top">(pre-release 1) ROT hashmap handling when autogc=no (default) can lead to key collisions
|
|
in hashmap. This causes objects to be garbage finalized when they shouldn't be resulting in vm failures
|
|
with large (large) numbers of objects. </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1674179</td>
|
|
<td width="87%" valign="top">(pre-release 1) Fixed Enum leaks with EnumVariants in Variant.cpp and EnumVariant.cpp</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1687419</td>
|
|
<td width="87%" valign="top">(pre-release 3) Corrected calls to AttachCurrentThread in EventProxy</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1689061 </td>
|
|
<td width="87%" valign="top">(pre-release 4) C code changes to fix VC2003 compiler warnings.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1690420</td>
|
|
<td width="87%" valign="top">(pre-release 4)Incorrect memcpy lengths for Currency Variants</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1662887</td>
|
|
<td width="87%" valign="top">(pre-release 1) Dispatch static methods should throw runtime exceptions when
|
|
null is passed in for the Dispatch object and when the Dispatch object is in an invalid state. </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Known Issues</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1504120</td>
|
|
<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.
|
|
Some users have had say that Jacob must be built on MS2003 Server to run reliably.
|
|
The Jacob distribution on Sourceforge is built on Windows XP SP2</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1677933</td>
|
|
<td width="87%" valign="top"><em>Identified 1.11.1</em> Process affinity may have to be set on
|
|
dual core machines to avoid com exceptions.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">no ticket</td>
|
|
<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.
|
|
See the Sun bug tracking system http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399321 for more details.
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<!-- --------- -->
|
|
<h2>JACOB 1.11.1</h2>
|
|
<h3>What's New</h3>
|
|
Bug fix release
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1602188</td>
|
|
<td width="87%" valign="top">Variant toString() causes stack overflow for byRef() Variants
|
|
(This show stopper defect forced the 1.11.1 release)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1611487</td>
|
|
<td width="87%" valign="top">Variant toJavaObject() doesn't work for byRef Variables and
|
|
returned the wrong value for unrecognized Variant types.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td width="13%" valign="top">1607878</td>
|
|
<td width="87%" valign="top">Variant getJavaDateRef() fails.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">SF1603631</td>
|
|
<td width="87%" valign="top">Concurrent modification of ROT causes VM crashes. Access
|
|
to the ROT has been sychronized. No performance impact analysis has been done</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!-- --------- -->
|
|
<h2>JACOB 1.11</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
<li>
|
|
<b>Build</b>
|
|
<ul>
|
|
<li>Build process now notifies developer if version property missing</li>
|
|
<li>Build process now compiles 32 bit and/or 64 bit DLLs as appropriate
|
|
for the build environment.</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<b>API Changes</b>
|
|
<ul>
|
|
<li>Variant.noParam() changed to Variant.putNoParam()
|
|
<li>Variant.toString() now follows normal java semantics.
|
|
This conflicted with the jacob toXXX() standard.
|
|
<li>Many Variant.toXXX() did type conversion in addition to a get. The
|
|
methods have deprecated because folks didn't realize
|
|
they were doing type conversion.
|
|
Most calls to toXXX() methods should actually be getXXX() calls.
|
|
This also allowed toString() to follow Java conventions
|
|
<li>Variant native methods are wrapped with java methods that do parameter and
|
|
state checking to better armor the Variant
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1550604</td>
|
|
<td width="87%" valign="top">Build process died with confusing error if version not set in properties file(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1511033</td>
|
|
<td width="87%" valign="top">Fix array index out of bounds problem due to coding error (pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1570270 </td>
|
|
<td width="87%" valign="top">~Event method in EventProxy may unhook java thread from VM.
|
|
Can get JNI error because unhooking listner detatched Java VM thread (pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1538011 </td>
|
|
<td width="87%" valign="top">toString() non compliant with java standards. The toString() method
|
|
converted the underlying data to a string and it shouldn't. This caused
|
|
a rethinking of all toXXX() methods other than toDispatch(). Most of the
|
|
toXXX() methods have now been deprecated and should be replaced with getXXX() methods.
|
|
(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1478162</td>
|
|
<td width="87%" valign="top">Variant does not warn user if methods called after released.
|
|
All putXXX() and getXXX() methods now check to see if they've been released
|
|
prior to calling the JNI code. toXXX() methods are deprecated but protected
|
|
in the same way.(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">SF1493647</td>
|
|
<td width="87%" valign="top">Support command line parameter dll location specification.
|
|
Applets and other tools can now specificy the dll location that
|
|
is fed to a System.load() rather than System.loadLibrary for the
|
|
situation where the app can't write the dll to a library path directory.(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1580993</td>
|
|
<td width="87%" valign="top">Modify the build process to support 64 bit dll construction(pre2)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1550628</td>
|
|
<td width="87%" valign="top">Moved all LoadLibrary requests into LibraryLoader. Classes not subclassed
|
|
off of JacobObject make calls to a static method on LibraryLoader to make sure
|
|
DLL is loaded(pre1)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!-- --------- -->
|
|
|
|
<h2>JACOB 1.10.1</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
<li>
|
|
<b>Variants</b>
|
|
<ul>
|
|
<li>Static constnats are no longer released
|
|
<li>obj2variant on Dispatch now supports passing a java.util.Date
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1474474</td>
|
|
<td width="87%" valign="top">Static constants in the Variant class can no longer have SafeRelease() called on them.</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1477793</td>
|
|
<td width="87%" valign="top">obj2variant should accept java.util.Date the same way the Variant constructor does</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!-- ++++++++++++++++++++++++++++++ -->
|
|
|
|
<h2>JACOB 1.10</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
<li>
|
|
<b>Windows Processes</b>
|
|
<ul>
|
|
<li>New proposed API to support ActiveXComponent connections to already running applications.
|
|
Factory methods have been added to the ActiveXComponent to support this.
|
|
(Feedback wanted)
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<b>Variants</b>
|
|
<ul>
|
|
<li>Variant now accept Java Dates in the constructor.
|
|
<li>Redundant constructors removed
|
|
<li>Experimental toJavaObject() method added that automatically
|
|
converts to appropriate java type
|
|
<li>Support added for "NOTHING", a Variant of type Dispatch with no value
|
|
<li>Non functional getNull() and getEmpty() methods deprecated. They were void methods
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<b>Event Callbacks</b>
|
|
<ul>
|
|
<li>Jacob normally uses information in the registry to find the connection
|
|
information needed to set up event callbacks. Excel and other programs
|
|
don't put that information in the registry. A new optional parameter
|
|
has been added to the DispatchEvents constructors that lets a user provide
|
|
the location of the OLB or EXE that contains the information required to
|
|
retrieve the events.
|
|
<li>Event handlers can now return a Variant to calling MS Windows program.
|
|
Event handlers that do not return an object should still be defined
|
|
as being of type "void". This means that support for event handler's returning
|
|
values should be backwards compatible with previous releases.
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1340233</td>
|
|
<td width="87%" valign="top">Null Program Id in Dispatch Constructor does bad things to VM(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1341763</td>
|
|
<td width="87%" valign="top">Removed Variant serializable interface because it is not
|
|
actually serializable on 2000/xp(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1435215</td>
|
|
<td width="87%" valign="top">Incorrect memory release in SafeArray.cpp (pre4)
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1224219</td>
|
|
<td width="87%" valign="top">Memory leak in SafeArray.GetString()
|
|
Olivier Laurent, Software AG Luxembourg and David Pierron, Software AG Luxembourg (pre3)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1224219</td>
|
|
<td width="87%" valign="top">Change from UTF to UNICODE SafeArray.fromStringArray()
|
|
Olivier Laurent, Software AG Luxembourg and David Pierron, Software AG Luxembourg (pre3)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1386454</td>
|
|
<td width="87%" valign="top">Return values from event callbacks (pre3)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1394001</td>
|
|
<td width="87%" valign="top">Missing variable initialization (pre3)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1208570</td>
|
|
<td width="87%" valign="top">Support Excel and other objects events(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1241037</td>
|
|
<td width="87%" valign="top">Support NULL VT_DISPATCH.(pre2)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1169851 </td>
|
|
<td width="87%" valign="top">Support of VB's Nothing.(pre2)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1185167</td>
|
|
<td width="87%" valign="top">Provide methods to connect to running instance.(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">959381</td>
|
|
<td width="87%" valign="top">Auto variant to object conversion method method added to Variant.(pre1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1341779</td>
|
|
<td width="87%" valign="top">Variant should accept java.util.Date in Variant(Object) constructor(pre1)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!-- ++++++++++++++++++++++++++++++ -->
|
|
|
|
<h2>JACOB 1.9.1</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
<li>
|
|
<b>License</b>
|
|
<ul>
|
|
<li>License standardized on LGPL. See LICENSE.TXT for more information
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<b>Event Callbacks</b>
|
|
<ul>
|
|
<li>Event handlers are now wrapped in an InvocationProxy. The COM/JNI event
|
|
code knows only about InvocationProxies and calls the appropriate methods
|
|
on the Invocation proxy to get needed Variant instances and to forward
|
|
events to the Java layer.
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<b>Variants</b>
|
|
<ul>
|
|
<li>Automatic conversion between Windows Time and Java Date is now supported
|
|
in Variant object.
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<b>SafeArray</b>
|
|
<ul>
|
|
<li>Multi-dimensional (greater than 2) support
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1335897 </td>
|
|
<td width="87%" valign="top">SafeArray() called toString() on objects when debug was turned on</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1314116 </td>
|
|
<td width="87%" valign="top"> putString UNICODE string length not detected</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1264850</td>
|
|
<td width="87%" valign="top">Custom Event Dispatching</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">959382</td>
|
|
<td width="87%" valign="top">Time Conversion</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1313892 </td>
|
|
<td width="87%" valign="top">Multi-Dimensional SafeArray</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<!-- ++++++++++++++++++++++++++++++ -->
|
|
|
|
<h2>JACOB 1.9</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
|
|
<li>
|
|
<b>Event Callbacks</b>
|
|
<ul>
|
|
<li>Variant parameters can now be modified by the receiver to be passed
|
|
back to the COM caller </li>
|
|
<li>Callbacks now create objects of class VariantViaEvent rather than Variant.
|
|
This was aided to add debugging and tracing</li>
|
|
<li>Callbacks can now be received when running in JWS other launchers where
|
|
JACOB.jar is not in the system classloader's path.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
<li>
|
|
<b>Dispatch API Clarifications</B>
|
|
<ul>
|
|
<li>All static method's first parameters have been more strongly typed
|
|
to the Dispatch class, rather than Object. This may call for code
|
|
changes in the cases of code that just asigned Dispatch objects
|
|
to variables of type Object rather than Dispatch or one of its subclasses </li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>Dispatch subclasses are now supported with pointer modifying constructor</b>
|
|
<ul>
|
|
<li>Dispatch and ActiveXComponent now includes a constructor to be used by Dispatch subclasses
|
|
that swaps the pointers around. This eliminates the need for every Dispatch subclass
|
|
to have a constructor that swapped and nulled out the pointers to the COM layer.
|
|
All samples have updated to use the new api </li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>ActiveXComponent has been upgraded</b><ul>
|
|
<li>ActiveXComponent methods return ActiveXComponets </li>
|
|
<li>Methods have been added to the ActiveXComponents to retrieve
|
|
parameters as Dispatch objects or ActiveX components. The
|
|
Script Tests have been updated to show the same programs in Dispatch
|
|
format or ActiveXComponentFormat </li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>Memory Management</b>
|
|
<ul>
|
|
<li>Beta test option that lets an application use automatic object object
|
|
removal through the use of weak reference hash maps in the ROT class. The
|
|
default behavior of manual release via the COMThread class has been retained as
|
|
the default behavior. Developers can test automatic memory collection by
|
|
using the command line option <i>-Dcom.JACOB.autogc=true</i> </li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>JNI Changes</b>
|
|
<ul>
|
|
<li>Erroneous Array dimension checking fixed for certain boolean set and get functions
|
|
</li>
|
|
<li>Alternative method for finding Variant class for callbacks in JWS
|
|
or other application lanchers where the system classloader does not
|
|
know about JACOB classes. </li>
|
|
<li>Unicode is supported for putString and putStringRef</li>
|
|
<li>EventProxy zeros out the com object reference in the Variant objects
|
|
that are created by EventProxy so that they are not double released,
|
|
by both the Java VM and calling code from the COM side. The caller
|
|
is supposed to be responsible for releasing the memory it created.
|
|
This fix only applies to Variants created in callbacks. </li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
<b>Logging Additions</b><ul>
|
|
<li>Debugging logging to standard out for JACOB can be turned on by using the
|
|
command line option <i>-Dcom.JACOB.debug=true</i></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>Visual Studio</b><ul>
|
|
<li>The VisualStudio directory in the CVS repository will be removed in the next
|
|
release</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>Documentation</b><ul>
|
|
<li>API documentation via Javadoc is now being generated for all classes.</li>
|
|
<li>The development team is looking for help in upgrading the quality of the
|
|
class documentation</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<b>Build Changes</b>
|
|
<ul>
|
|
<li>A static method has been added to JacobObject that returns the build version</li>
|
|
<li>The project is now being built using ANT. Most of the developers are
|
|
running this from inside of Eclipse</li>
|
|
<li>All makefiles have been purged</li>
|
|
</ul>
|
|
|
|
<h3>Tracked Changes</h3>
|
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Bugs</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1116101</td>
|
|
<td width="87%" valign="top">jacob-msg 0284 : Access Violation while garbage collecting</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1114159</td>
|
|
<td width="87%" valign="top">Problem with COM Error Trapping in JACOB DLL</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1113610</td>
|
|
<td width="87%" valign="top">Bad error check in SafeArray.cpp</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1066698</td>
|
|
<td width="87%" valign="top">Minor Memory leak in Dispatch.cpp</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1065533</td>
|
|
<td width="87%" valign="top">Problem with unicode conversion</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1053871</td>
|
|
<td width="87%" valign="top">solution for memory leak in 1.7</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1053870</td>
|
|
<td width="87%" valign="top">JACOB0msg 2019 - Safe Array</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1053866</td>
|
|
<td width="87%" valign="top">getHResult only returns 80020009</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">960646</td>
|
|
<td width="87%" valign="top">But in SafeArray:: getBoolean for 2D arrays</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Patches</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1115187</td>
|
|
<td width="87%" valign="top">EventCallbacks fail w/Variant ClassNotFoundException in JWS</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1105915</td>
|
|
<td width="87%" valign="top">Fix for event handling memory corruption</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1090104</td>
|
|
<td width="87%" valign="top">Weak Reference in teh ROT</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1068544</td>
|
|
<td width="87%" valign="top">in/out parameter support for event handlers</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">981540</td>
|
|
<td width="87%" valign="top">jre 1.4.2 fix as patch</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
<tr>
|
|
<td width="100%" colspan="2"><b>Feature Requests</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1049390</td>
|
|
<td width="87%" valign="top">static Version information</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1049224</td>
|
|
<td width="87%" valign="top">Javadocs or at least script to generate it</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top">1049158</td>
|
|
<td width="87%" valign="top">API to get ProgId of ActiveXComponent</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="13%" valign="top"> </td>
|
|
<td width="87%" valign="top"> </td>
|
|
</tr>
|
|
</table>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<h2>JACOB 1.8</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
|
|
<li>
|
|
<b>Move To SourceForge</b>
|
|
The project is not housed at
|
|
<a href="http://sourceforge.net/projects/jacob-project/">Sourceforge.net</a>.
|
|
</li>
|
|
|
|
<li>
|
|
<b>Licensing Change</b>
|
|
All limitations on commercial use of JACOB have been removed and it
|
|
is now being developed under a BSD license at
|
|
<a href="http://sourceforge.net/projects/jacob-project/">Sourceforge.net</a>.
|
|
</li>
|
|
|
|
<li>
|
|
<b>Compiled with Java 1.4.2</b>
|
|
Version 1.8 was compiled with JSEE 1.4.2 and fixes the compilation bug
|
|
that was remnant of compilation with JDK 1.1.
|
|
</li>
|
|
|
|
<li>
|
|
<b>Baseline For Change</b>
|
|
This version is the baseline for the first CVS checkin and we encourage
|
|
people to start contributing to the project with this version.
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<li>
|
|
<h2>JACOB 1.7</h2>
|
|
<h3>What's New</h3>
|
|
<ul>
|
|
|
|
<li>
|
|
<b>Explicit COM Threading Model Support:</b>
|
|
See a detailed discussion of
|
|
<a href="JacobThreading.html">COM Apartments in JACOB</a>
|
|
</li>
|
|
|
|
<li>
|
|
<b>New COM Object Lifetime model:</b>
|
|
See a detailed discussion of
|
|
<a href="JacobComLifetime.html">COM Object Lifetime in JACOB</a>.
|
|
</li>
|
|
|
|
<li>
|
|
<b>Improved Event Handling:</b>
|
|
Thanks to code contributed by
|
|
<a href="mailto:n.o.bouvin@daimi.au.dk">
|
|
Niels Olof Bouvin</a>
|
|
and <a href="mailto:jehoej@daimi.au.dk">Henning Jae</a> JACOB 1.7 can
|
|
read the type information of a Connection Point interface by looking
|
|
it up in the registry. This makes it possible to use events with IE as
|
|
well as office products.
|
|
</li>
|
|
|
|
|
|
<li>
|
|
<b>Improved Dispatch:</b>
|
|
Error messages from Invoke failures are now printed out as well as
|
|
allowing the passing in of arguments to a Get method.
|
|
</li>
|
|
|
|
<li>
|
|
<b>EnumVariant Implementation:</b>
|
|
Makes it easier to iterate over COM collections. Thanks to code
|
|
contributed by
|
|
<a href="mailto:Thomas.Hallgren@eoncompany.com">Thomas Hallgren</a>.
|
|
</li>
|
|
|
|
<li>
|
|
<b>SafeArray leaks:</b>
|
|
SafeArrays were not being properly freed prior to version 1.7, many
|
|
other memory leaks were fixed as well.
|
|
</li>
|
|
|
|
<li>
|
|
<b>Visual Studio Project:</b>
|
|
For those who want to debug: vstudio/JACOB. At the moment all the
|
|
native code is replicated there from the jni directory...
|
|
</li>
|
|
|
|
</ul>
|
|
<h2>Related Links</h2>
|
|
<ul>
|
|
<li>
|
|
The best way to get support or the latest version of JACOB is on
|
|
<a href="http://sourceforge.net/projects/jacob-project">
|
|
http://sourceforge.net/projects/jacob-project </a>
|
|
<b>This is the preferred way to get support for JACOB</b>. It also
|
|
includes an extensive archive. If you are doing any development with
|
|
JACOB, please join sourceforge.
|
|
<li>
|
|
Massimiliano Bigatti has developed
|
|
<a href="http://sourceforge.net/projects/jacob-project">
|
|
JACOBgen - a generator that automatically creates JACOB code from
|
|
Type Libraries, now available on sourceforge</a>
|
|
</li>
|
|
<li>
|
|
Steven Lewis is developing a version of Java2Com that supports JACOB
|
|
code generation. See:
|
|
<a href="http://www.lordjoe.com/Java2Com/index.html">
|
|
http://www.lordjoe.com/Java2Com/index.html</a>.
|
|
<li>
|
|
To find documentation on the com.ms.com package, go to:
|
|
<a href="http://www.microsoft.com/java/download/dl_sdk40.htm">
|
|
http://www.microsoft.com/java/download/dl_sdk40.htm</a>
|
|
and at the bottom of the page is a link that says:
|
|
Microsoft SDK for Java 4.0 Documentation Only. You should download
|
|
that file and install it. Then, view sdkdocs.chm and look for
|
|
"Microsoft Packages Reference". Hopefully, the next release of
|
|
JACOB will include full javadoc (volunteers?)...</li>
|
|
|
|
</BODY>
|
|
</HTML> |