Jump to content
Changes to the Jaspersoft community edition download ×

Strange behavior JRFillDataSet- cause maybe a bug


sabertooth

Recommended Posts

Hello,

 

we use jasperreports 1.2.4 and have a very strange problem. The application server is an orion webserver 2.0.6 with jdk 1.5.0_04

We have several reports which run perfectly without any problems.

But one report (uses scriptlet) has this strange behavior:

 

The first user(user a) request in the webapplication with a servlet the report and get the report.

After that a second user (user b) request also the same report but receive nothing. Only the message that the datasource is null.

We analysed the situation and followed the error messages to the method setParameter(JRFillParameter parameter, Object value) in the JRFillDataset-Class.

The cause is when the Datasource is set by the method setParameter the statement If(parameter.getValueClass().isInstance(value)) is true for User A and for User B=false.

 

So we change the source (see bottom of the thread) that no JRException is thrown but without any affect.

 

This behavior is only in one report and when different users with different computers request the report from the webserver.

 

Any Ideas ?

 

 

 

 

protected void setParameter(JRFillParameter parameter, Object value) throws JRException

{

if (value != null)

{

if (parameter.getValueClass().isInstance(value))

{

parameter.setValue(value);

}

else

{

//new Code

//changed since exception was always thrown

//if munic users tried to print. Seems to be a java bug.

parameter.setValue(value);

System.err.println("Incompatible "

+ value.getClass().getName()

+ " value assigned to parameter "

+ parameter.getName()

+ " in the " + getName() + " dataset." );

}

// old code

// throw new JRException(

// "Incompatible "

// + value.getClass().getName()

// + " value assigned to parameter "

// + parameter.getName()

// + " in the " + getName() + " dataset."

// );

// }

}

else

{

parameter.setValue(value);

}

}

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

  • 5 weeks later...

Hi there,

I found a workarround to this problem.

Therefore I modified

 

net.sf.jasperreports.engine.fill.JRFillDataset

 

and replaced all JRClassLoader.loadClassForName by this.getClass().getClassLoader().loadClass

 

Since than it works properly.

 

 

Best

MS

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...