DASSERT failure for FindClass("sun/java2d/SurfaceData")

Pete Brunet pete at a11ysoft.com
Mon Jun 14 17:02:23 UTC 2010


I can run Swingset2 fine with the straight b96 build so it's something I
did, perhaps to the build environment.  Here are the changes I made:

Modifications for VS 2010:
- make sanity failed, can't find crtassem.h (MS removed it from VS 2010)
  modified freetypecheck.c to remove the  _MSC_VER section
    which contains all the #pragma comment(linker stuff
  modified its Makefile to comment out the line invoking $(MT).
- rc and mt failed
  $(RC) and $(MT) are pointed at
    C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
  instead of
    C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin
  changed ...\jdk7\jdk\make\common\Library.gmk from using $(RC/MT) to
just rc/mt
  ditto ...\jdk7\jdk\make\common\Program.gmk
  ditto ...\jdk7\jdk\make\com\sun\java\pack\Makefile
  From Phil Race: Instead try setting ALT_MSDEVTOOLS_PATH

Integration of my code:
- modified awt_Component.cpp in and added awt_Accessible.cpp/h to
  ...\jdk7\jdk\src\windows\native\sun\windows
- added AccessibleContextMirror.java to
  ...\jdk7\jdk\src\windows\classes\sun\awt\windows\accessibility
- added AWTAccessibilityException.java to
  ...\jdk7\jdk\src\share\classes\java\awt\accessibility
- added awt_Accessible.cpp to
  ...\jdk7\jdk\make\sun\awt\FILES_c_windows.gmk
- added sun/awt/windows/accessibility/AccessibleContextMirror.java to
FILES_export2 section of
  ...\jdk7\jdk\make\sun\awt\FILES_export_windows.gmk
added a section for $(OBJDIR)/awt_Accessible.obj to
  ...\jdk7\jdk\make\sun\awt\make.depend
- added sun/awt/windows/accessibility/AccessibleContextMirror to
  ...\jdk7\jdk\make\tools\sharing\classlist.windows
- added oleaut32.lib/dll and oleacc.lib/dll to OTHER_LDLIBS section of
  ...\jdk7\jdk\make\sun\awt\Makefile
- modified awt_DnDDS.cpp to add inline to
  void * operator new(size_t size) {return operator new(size, "stl", 1);}

Note: The change to AwtComponent::WindowProc was minor:
- add a case for WM_GETOBJECT
- add some some code to WM_AWT_COMPONENT_SETFOCUS
- add the following front matter in order to use an STL map (just like
what's done in awt_DnDDS.cpp

#pragma push_macro("bad_alloc")
//"bad_alloc" would be introduced in STL as "std::zbad_alloc" and
discarded by linker
//by this action we avoid the conflict with AWT implementation of
"bad_alloc"
//we need <new> inclusion for STL "new" oprators set.
#define bad_alloc zbad_alloc
#include <new>

#if defined(_DEBUG) || defined(DEBUG)
extern void * operator new(size_t size, const char * filename, int
linenumber);
inline void * operator new(size_t size) {return operator new(size,
"stl", 1);}
#endif
#include <map>  // needed for map in awt_Accessible.h

#pragma pop_macro("bad_alloc")
//"bad_alloc" is undefined from here

Pete
===
Raffaello Giulietti wrote:
> I too cannot run Swing apps with the build of OpenJDK7 described here:
>
> http://mail.openjdk.java.net/pipermail/build-dev/2010-May/002955.html
>
> But my instructions describe how to use a binary FreeType for the build.
> This suggests that Denis is probably right about building FreeType form
> sources, even for newer build chains (VS 2008 and VS 2010). I didn't
> give it a try, though.
>
> Raffaello
>
>
>
> On 2010-06-14 16:51, Lussier, Denis wrote:
>   
>> I could never get any Swing app to run from my OpenJDK 6 Win32 builds
>> (check out http://openscg.org) until building Freetype myself with
>> Visual Studio.  Using VS2003 it was as simple as:
>>
>> - download latest source from freetype.org
>>
>> - convert older ms project file shipped with freetype source to your
>> version of visual stdio by simply opening in the gui and acknowledging
>> the conversion.
>>
>> - build freetype from visual studio gui as a static lib and then a dll.
>>
>> - point the FREETYPE environment variables used for building OpenJDK
>> to the above.
>>
>>
>> --Denis Lussier
>>   http://openscg.org
>>
>>
>> On 6/14/10, Pete Brunet <pete at a11ysoft.com> wrote:
>>     
>>> In my first attempt at running a (slightly) modified OpenJDK jdk7 b96
>>> I'm getting a crash at startup running the SwingSet2.jar from JDK6 u20.
>>> My unmodified b96 runs SwingSet2 with no crashes.  (I built it with VS
>>> 2010 Pro.)
>>>
>>> Looking at the stack trace indicates a DASSERT failure in
>>> Java_sun_awt_windows_WToolkit_initIDs in awt_WToolkit.cpp at this code:
>>>
>>> jclass sDataClassLocal = env->FindClass("sun/java2d/SurfaceData");
>>> DASSERT(sDataClassLocal != 0);
>>>
>>> Since the failure appears to be unrelated to my code, perhaps I've made
>>> an error in what I've modified in the build (but looking at build
>>> particulars related to SurfaceData I didn't see any issues).
>>>
>>> The output and stack trace are below.
>>>
>>> How would you suggest I start debugging this?
>>>
>>> Thanks, Pete
>>>       




More information about the build-dev mailing list