-
Bug
-
Resolution: Duplicate
-
P2
-
None
-
1.3.0_02
-
sparc
-
solaris_8
Name: pa48320 Date: 04/23/2002
We have a charting JSP utilizing swing ThreeD Graphics bean in Oracle Exchange.
Exchange is a very large 24x7 High Availability application using JDK 1.3.1_02.
We have the latest OS patches.
We get a JDK crash in X/Motif code outside the JVM attempting to use this charting bean.
The bean and all other code associated with it is 100% Java.
The crash is, unfortunately, sporadic, but can definately be reproduced by
repeated running of the program at the end of this report.
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 10 occurred at PC=0xcbc794b4
Function name=_XmIEndUpdate
Library=/usr/dt/lib/libXm.so.4
Current Java thread:
at sun.awt.motif.MToolkit.run(Native Method)
at java.lang.Thread.run(Thread.java:484)
Dynamic libraries:
0x10000 /usr/620_java/j2sdk1_3_1_02/bin/../bin/sparc/native_threads/java
0xff370000 /usr/lib/lwp/libthread.so.1
0xff3a0000 /usr/lib/libdl.so.1
0xff280000 /usr/lib/libc.so.1
0xff350000 /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
0xfec00000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/server/libjvm.so
0xff250000 /usr/lib/libCrun.so.1
0xff230000 /usr/lib/libsocket.so.1
0xfeb00000 /usr/lib/libnsl.so.1
0xff200000 /usr/lib/libm.so.1
0xff360000 /usr/lib/libw.so.1
0xff360000 /usr/lib/libw.so.1
0xff1c0000 /usr/lib/libmp.so.2
0xff190000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/native_threads/libhpi.
so
0xff160000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/libverify.so
0xfebc0000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/libjava.so
0xff120000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/libzip.so
0xfe9e0000 /usr/lib/nss_files.so.1
0xfe9c0000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/libawt.so
0xcbe80000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/motif21/libmawt.so
0xfe970000 /usr/620_java/j2sdk1_3_1_02/bin/../jre/lib/sparc/libmlib_image.s
o
0xcbc00000 /usr/dt/lib/libXm.so.4
0xfd890000 /usr/openwin/lib/libXt.so.4
0xfe940000 /usr/openwin/lib/libXext.so.0
0xfdbe0000 /usr/openwin/lib/libXtst.so.1
0xcbb00000 /usr/openwin/lib/libX11.so.4
0xfdbc0000 /usr/openwin/lib/libSM.so.6
0xfd860000 /usr/openwin/lib/libICE.so.6
0xfd830000 /usr/openwin/lib/libdga.so.1
0xcba00000 /usr/620_java/j2sdk1_3_1_02/jre/lib/sparc/libfontmanager.so
0xfb420000 /usr/openwin/lib/libdps.so.5
Local Time = Tue Apr 16 13:02:27 2002
Elapsed Time = 23
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Server VM (1.3.1_02-b02 mixed mode)
#
I will provide a sample program (below) in Java which occaisionally will crash
with the same error. Like I said, it's intermittent, but definately happens if
you run it a few times.
I can provide, given a location to ftp:
1) An archive (198 Meg, compressed!) of all of the archive files needed to run the program.
Most of the classes are not used, but extracting the required ones is too difficult.
2) A copy of all of the environment settings and the command to run the
sample program
3) A core file of the JDK crash
Just tell me where to send them and how.
Reproduction program below:
import oracle.apps.pom.mktint.*;
import oracle.dss.dataView.*;
import java.awt.*;
import java.util.*;
import oracle.dss.dataView.managers.*;
import oracle.apps.pom.util.GraphicsUtil;
import oracle.dss.graph.*;
import javax.swing.*;
import java.awt.Color;
import java.io.*;
public class ChartStress extends Thread
{
public ChartStress()
{
}
public void run()
{
Graph g = new Graph();
g.getO1TickLabel().setTickLabelStaggered(true);
g.getO1TickLabel().setTextFittingAutomatic(false);
g.getO1TickLabel().getGraphFont().setGraphProportionalFontSize(1300);
g.getY1TickLabel().setTextFittingAutomatic(false);
g.getY1TickLabel().getGraphFont().setGraphProportionalFontSize(1500);
g.getSliceLabel().getGraphFont().setGraphProportionalFontSize(1600);
g.getSliceLabel().setTextType(SliceLabel.LD_VALUE);
g.getLegendArea().setLegendTextPosition(LegendArea.LTP_BELOW);
g.getLegendText().setTextFittingAutomatic(true);
g.getLegendText().setHorizontalAlignment(SwingConstants.CENTER);
g.setPieDepth(10);
g.setPieTilt(20);
g.setDepthRadius(100);
g.setDepthAngle(30);
g.getPlotArea().setFillColor(Color.red);
g.setGraphType(18);
imagemapping(g);
try
{
FileOutputStream os = new FileOutputStream("/tmp/chart.gif");
// response.setContentType("image/gif");
g.exportToGIF(os);
os.flush();
os.close();
}
catch (Exception e) {System.err.println(e.getMessage());}
}
public void imagemapping(Graph g)
{
// ChartDataSource datasource = g.getDataSource();
Enumeration map = g.getImagemapEnumeration( Graph.MAP_DATA );
while( map.hasMoreElements()) {
ImagemapComponent comp = (ImagemapComponent)map.nextElement();
Polygon poly = comp.getPlacement();
ComponentHandle handle = comp.getComponentHandle();
int series = -1, group = -1;
if( handle instanceof DataComponentHandle ) {
int row = ((DataComponentHandle)handle).getRow();
int column = ((DataComponentHandle)handle).getColumn();
if(g.isDataRowShownAsASeries()) {
series = (int)row;
group = (int)column;
} else {
series = (int)column;
group = (int)row;
}
} else if( handle instanceof SeriesComponentHandle ) {
series = ((SeriesComponentHandle)handle).getSeries();
} else if( handle instanceof GroupComponentHandle ) {
group = ((GroupComponentHandle)handle).getGroup();
}
String entry = "<AREA SHAPE=POLYGON COORDS=\"";
for( int i=0; i<poly.npoints; i++) {
if( i!=0 )
entry += ", ";
entry += (poly.xpoints[i] + ", " + poly.ypoints[i]);
}
entry += "\">";
System.out.println( entry );
}
}
public static void main( String[] args )
{
ChartStress s = null;
int tests = 20;
for (int i = 0; i< tests; i++)
{
for (int j = 0; j<40; j++)
{
System.out.println( "--------------------------------");
System.out.println( "Chart #"+((i+1)*(j+1))+" -------------------");
s = new ChartStress();
s.start();
}
try { s.join(); } catch (Exception e) {}
}
try { s.join(); } catch (Exception e) {}
System.exit(0);
}
}
(Review ID: 145494)
======================================================================