i-net Clear Reports

Error FAQ

Please check out the Know Problems also.

Table of Contents

"URL parameters are cut off" or "the URL %%http://...?report=test.rpt&sf=if a=b then c%% does not work"

Please note that URL parameters which contains special characters must be URL encoded. Special characters are ”,&,=,<space>,+,:.

Please see URLEncode for more information.

Oracle Stored Procedures

Oracle JDBC driver 8.1.7.0.0 and above have a bug and return false results when querying for the parameters of a stored procedure. If you use an Oracle stored procedure with a cursor parameter and you see the following line in the engine output log:

SELECT ... FROM <SP> ...

or

“The Stored procedure has more parameter 10 as the report design 2.”

then please use one of i-net software's JDBC type 4 drivers for Oracle.

The problem is related to the call metadata.getProcedureColumns. If you set the log.level of the i-net Clear Reports report engine to 5 and run the report, you will see with which arguments the method gets called. The problem is that the Oracle JDBC drivers return not only the SP parameters but also the parameters for the underlying select ?: statement.

We have created a zip file which contains two Oracle SP's, one inside and one outside of a package and two reports using these SP's. To run the test, please insert the correct values for your database (server, SID, etc) and the three parameters for the getProcedureColumns (see above).

Swing Java Viewer Bean and JDK1.4.0

With JDK1.4.0 plug-in on a 16 bit display the swing java viewer bean sometimes does not show the content until the browser is re-sized. This is a known problem with JDK 1.4 running on a 16bpp display. Please use another color depth (24 or 32 bit) or please use JDK1.3 instead.

The embedding of "Windows Metafile" is not supported. Please convert it to a bitmap.

i-net Clear Reports is a platform independent tool. It cannot read an image in the format “Windows Metafile”. You need to save the image as bitmap.

Workaround:

  • If you paste the image from the clipboard then you need to use “Paste Special…”. Select the type “Bitmap” or “Device Independent Bitmap” and NOT “Picture (Metafile)”.
    If these types are not available in the list you need to convert it at first . To convert the clipboard type paste the image in the program Paint and then copy it to the clipboard.
  • If you insert the image from a file there are no problems because Crystal Reports saves it as bitmap in the *.rpt file.

The formula based on a database field {string field} does not work (the formula tests if the field is empty)

Unlike Crystal Reports i-net Clear Reports does not trim() a string database field. So before testing if the string field is empty or is equal to another field please trim the whitespace from the field (“trim({string}”).

Can't initialize the graphical environment.

I-net Clear Reports will detect a headless server automatically if you start the Java VM for i-net Clear Reports (or your servlet-engine or application server) with the option -Djava.awt.headless=true. For example:

java -Djava.awt.headless=true -classpath ./core/ClearReports.jar com.inet.report.Listener

i-net Clear Reports is using the AWT package for rendering text on the server side. Since AWT delegates certain tasks (font renderering for example) to the graphic sub-system of the host operating system, AWT and therefore i-net Clear Reports requires a graphical environment with more than 255 colours.

If you get the above error on a Windows machine, please switch to a graphics mode with at least 256 colours. On Unix you can switch to a pseudo-color or true-color visual or simply point your DISPLAY environment variable to the dummy X11 server “Xvfb”.

If you get this error on a IBM mainframe, then please install RAWT or NAWT, IBM's version of AWT. Another possibility would be to use PJA in combination with codepage CP500.

More information:

java.lang.RuntimeException: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.

I-net Clear Reports will detect a headless server automatically if you start i-net Clear Reports (or your servlet-engine or application server) with the option -Djava.awt.headless=true.

You need to use a xterm (not really an xterm, but a functional X11 server (or X11-sink like Xvfb) is required) because the JavaVM need this for AWT.

See the following:

Is there a “pseudo-tty” or fake X display I can use?

Applications often have a need to run against an X display which isn't tied to a physical display – perhaps to make a screendump, or to run when the software expects to have an open display. In these cases, the X Virtual Frame Buffer can be used. It is a full X server which doesn't open any devices (the output can be a memory-mapped file) but which otherwise behaves as an X display. It is also useful for testing. The Xvfb is part of the X11R6 distribution, in programs/Xserver; set the configuration option in config/{machine}.cf to build the distribution with this server.

More information:

The server just hangs while running on UNIX.

The problem might be similar to the problem above. If you examine the thread dump of i-net Clear Reports and see a thread hanging in sun.awt.X11GraphicsEnvironment.initDisplay, see above.

java.lang.ClassNotFoundException: com.inet.viewer.ViewerApplet

The class file ViewerApplet is included in the archive file ReportViewer.jar (CC-Viewer.jar in versions previous to version 11).

This archive file of the Java viewer (ReportViewer.jar) is located in the virtual folder core.

Since i-net Clear Reports version 11.0 the file ReportViewer.jar should be included in the directory ”<install_dir>/core”.

Do not extract these original archive file because it is a signed archive. With this signed archive file the viewer have the necessary rights for printing and file access (export) in an applet.

Values of database fields with the datatype "nvarchar" or "ntext" (MS SQL Server 7) are not displayed in the report

This problem occurs when:

  • you have designed a report that uses ODBC to connect to the SQL Server 7 (or higher) and
  • you have added database fields with the above data types to this report and
  • you use a JavaVM (JDK or JRE) from Sun.

This problem occurs because there is a bug in the JDBC-ODBC bridge that is included in the JavaVM from Sun. For more information about this bug see: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4379373.

Workaround:

Until Sun has fixed this bug in the JavaVM you can use a native JDBC type 4 driver for the MS SQL Server 7 at runtime, e.g. our JDBC type 4 driver: i-net SPRINTA.
For more information about the JDBC drivers from i-net software, see: the i-net JDBC homepage.

You need to specify that you would like to use a different JDBC driver at runtime as at design time.

  1. This can be done in the report URL on the client side with the parameters dll, host, catalog, schema, user and password.
    For more information about the URL parameters please refer to the i-net Clear Reports documentation that you can install using the setup.Here is a sample for using these report URL parameters with i-net Clear Reports as Java application:
    http://serverName:port/?...rpt&dll=pdssql.dll&host=DBServerName&catalog=DBName&
    schema=SchemaName&user=UsrName&password=PWD

    with i-net Clear Reports as servlet:

    http://serverName:port/servlets/com.inet.report. ReportServlet/?...rpt&dll=pdssql.dll&
    host=DBServerName&catalog=DBName&schema=SchemaName&user=UsrName&password=PWD

    For more information please refer to the i-net Clear Reports documentation.

  2. Also it is possible to set the values of these parameters on the server side without sending the values from client to server. In this case the client does not need to specify the parameters in the report URL and send it to the server.
    For more information refer to the java sample files: MyListener_withMyReportProperties.java (for Java application) or MyReportServlet_withMyReportProperties.java (for servlet).

java.net.MalformedURLException: unknown protocol: https

Although i-net Clear Reports supports HTTPS, this is not necessarily the case for most servlet containers. In order to access a resource within an https servlet context the servlet container must implement a URLStreamHandlerFactory which returns the appropriate handler.

This problem only occurs if you use relative URLs like:

https://servername/servlet/com.inet.report.ReportServlet/?examples/report1.rpt

or a resource URL which points into an SSL context like:

https://servername/servlet/com.inet.report.ReportServlet/?https://servername/report1.rpt.

However, absolute file, http, etc. resource URLs like the following will generally work:

https://servername/servlet/com.inet.report.ReportServlet/?file:c:/examples/report1.rpt
https://servername/servlet/com.inet.report.ReportServlet/?http://servername/report1.rpt

The following servlet engines are known to implement a custom URLStreamHandlerFactory:

  • Bea Weblogic 6.0.

java.lang.RuntimeException: The Stored procedure has more parameter X as the report design Y.

These exception occurs because of a bug in the Oracle JDBC driver.
Please use another JDBC driver for the Oracle database, e.g. i-net SERO.

libioser not found

This means that a native library has not been found. Please adjust the library path (PATH or LD_LIBRARY_PATH on linux) to point to the correct directory. If you get the this error in the Sun J2EE application server, please set the environment variable J2EE_HOME to the correct location. The application server will then automatically adjust the library search path and will search for the ioser library in this directory.

No refresh in IE when embedding objects

The IE browser has a bug and does not refresh an embedded object when the request key stays the same, even though the refresh button has been clicked. So when using this browser the server cannot simply append &init=xls&cmd=rfsh to refresh the content every time the client has clicked on the refresh button. When you use this browser, you must append a unique key (for example via java script); for example when the user has clicked on the refresh button you can append a dummy parameter value representing the current time.

I cannot use @code font in i-net Clear Reports, why?

The Crystal Reports Designer shows some fonts with a leading @. i-net Clear Reports cannot use these fonts. Why?

The @xxx fonts appear after you've installed a CR UFL into Crystal-Reports. These @xxx fonts rely on functionality exported from a native-code Crystal-Reports user function library and are not available to the operating system in general, so i-net Clear Reports cannot use these fonts.

As a workaround please use a barcode font that does not use a CR UFL; all fonts which do not start with the @ will work.

The server seems to be looping. How Do I create a thread-dump to see what the engine does?

To create a thread dump (a trace of every thread in the java VM) you send the java VM a SIGQUIT signal or type ctrl-\ at the control terminal (on Windows it is ctrl-break).

Creating a thread dump on:

  • Linux: Type killall -3 java
  • Unix: Find out the process ID of the java VM and find out which signal number the SIGQUIT signal has and then type kill -<signo> <pocID>
  • Windows: Since this operating system cannot send signals, you must start a java VM from a DOS console and then type Control-Break when you want to see a thread dump.

A typical thread dump with one thread compressing the output stream to be sent to the client, one waiting for the pageData and one waiting for more incoming requests is shown below.

Full thread dump Java HotSpot Client VM (1.4.2-b28 mixed mode):

"EngineThreadPool-0" daemon prio=1 tid=0x080debe8 nid=0x4a6d runnable [4daac000..4daad118]
	at java.util.zip.Deflater.deflateBytes(Native Method)
	at java.util.zip.Deflater.deflate(Deflater.java:288)
	- locked <0x447203d0> (a java.util.zip.Deflater)
	at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:154)
	at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:114)
	at com.inet.report.aw.if(Unknown Source)
	at com.inet.report.aw.do(Unknown Source)
	at com.inet.report.aw.a(Unknown Source)
	at com.inet.report.j.e(Unknown Source)
	at com.inet.report.br.v(Unknown Source)
	at com.inet.report.br.run(Unknown Source)
	- locked <0x44e8d658> (a com.inet.report.j)
	at com.inet.report.zy.g$a.run(Unknown Source)
 
"ReportThreadPool-0" daemon prio=1 tid=0x081472e8 nid=0x4a6d in Object.wait() [4da2c000..4da2d198]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x44e8dab0> (a com.inet.report.Engine)
	at com.inet.report.Engine.case(Unknown Source)
	at com.inet.report.Engine.getPageData(Unknown Source)
	- locked <0x44e8dab0> (a com.inet.report.Engine)
	at com.inet.report.a7.a(Unknown Source)
	at com.inet.report.a7.a(Unknown Source)
	at com.inet.report.a7.a(Unknown Source)
	at com.inet.report.ReportSocket.a(Unknown Source)
	at com.inet.report.ReportSocket.run(Unknown Source)
	at com.inet.report.zy.g$a.run(Unknown Source)
 
"DestroyJavaVM" prio=1 tid=0x080520e8 nid=0x4a6d waiting on condition [0..bfffd1e4]
 
"Listener" prio=1 tid=0x081480c8 nid=0x4a6d runnable [4d9ad000..4d9ad218]
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
	- locked <0x44c360e8> (a java.net.PlainSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:448)
	at java.net.ServerSocket.accept(ServerSocket.java:419)
	at com.inet.report.Listener.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:534)

Java error on RedHat 9 or RedHat X or RedHat Enterprise Linux 3 or any other distribution based on RedHat's Fedora Linux

Since RedHat 9, RHEL3 or FedoraCore 1, the GCC, the “gnu compiler collection” is included into the Linux distribution – its java backend is also called “gcj”. The GCC3.x can compile and interpret java code but it is still in a very early stage (because it should be free software, has been written from scratch). Especially the Swing support is missing. RedHat has decided to use this java as the default JVM on their operating system.

Although it is possible to use GCC to compile ClearReports.jar into native code using GCC or to run i-net Clear Reports using the libgcj, the i-net Clear Reports Setup and the i-net Designer will not work with this java.  Please use IBM JDK 1.3 or Sun JDK1.4.2 to run i-net Clear Reports on Linux. Please point the PATH variable to the Sun JDK1.4.2 or IBM Java installation directory:

export PATH=/usr/java/j2sdk1.4.2/bin/:$PATH

If you encounter problems such as “Warning: -jar not understood. Ignoring.at 0x40268e17:

java.lang.Throwable.Throwable(java.lang.String)

(/usr/lib/.:libgcj.so.3)”, then please use IBM JDK1.3 or Sun JDK1.4.2. – Please note that if you use an earlier version of the Sun JDK (for example 1.3), you must set the variable LD_ASSUME_KERNEL to the appropriate value.

Please see the documentation of your RedHat Linux system for details.

java.net.MalformedURLException: no protocol: /test.rpt

The above message typically comes from the engine when you have passed an incomplete report URL such as report=/test.rpt. We try different strategies to find the report file /test.rpt in the current environment:

  1. check if it is a local resource of the current servlet (we call getLocalResource(<context>/test.rpt)
  2. check for a file:///test.rpt
  3. look for http://localhost:<port>/test.rpt (only in the ReportSocket, but not in the ReportServlet)
  4. give up and pass the string /test.rpt to your JVM which should decide what to do with it.

The message “java.net.MalformedURLException: no protocol: /test.rpt” means that your JVM was not able to find the resource /test.rpt because an URL protocol is missing. Please use report=file:///test.rpt or report=http://<host>:<port>/test.rpt instead.

For example:

http://localhost:8080/reporting/ReportServlet?report=file:c:/test1.rpt would be a valid URL on Windows while
http://localhost:8080/reporting/ReportServlet?report=file:///var/tmp/test1.rpt would be valid on Unix

cannot access class com.inet.report.<xx>; bad class file with JBuilder 8

This exception can occur if you use JBuilder 8 with the “Borland Make” compiler because it have problems with obfuscated classes. To solve this problem please switch from “Borland Make” compiler to javac (in build options of your project) or to a newer version of JBuilder (e.g. JBuilder X).

My formula with a global variable is only evaluated once! This used to work in version 5.2 or before.

Since i-net Crystal-Clear version 5.3, there is a new and better formula behavior when it comes to a formula's evaluation time. Formulas are now evaluated only once, “before reading records”, if at all possible - this includes formulas with variables. To force formulas to be evaluated once for each record, use the command “whilereadingrecords” or “whileprintingrecords”. For more information, also see the answer to this question.

java.lang.UnsupportedClassVersionError: com/inet/designer/Main (Unsupported major.minor version 49.0) and java.lang.UnsupportedClassVersionError: com/inet/report/Listener (Unsupported major.minor version 49.0)

Since version 8.0 i-net Crystal-Clear and i-net Designer requires Java VM 5.0 (or higher).


i-net software strives to provide accurate product documentation. Please give us your feedback using the form below.
NOTE: This form is for documentation feedback only. For technical assistance, please send an email to clearreports@inetsoftware.de.

 

© Copyright 1996 - 2014, i-net software; All Rights Reserved.