| Summary: | I think PluginResourceLocatorImpl.encode() is broken | ||
|---|---|---|---|
| Product: | [Tools] Data Tools | Reporter: | Bryan Hunt <bhunt> |
| Component: | Connectivity | Assignee: | Linda Chan <lchan> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | critical | ||
| Priority: | P3 | CC: | hopemeneghini, singh.78 |
| Version: | 1.9.1 | ||
| Target Milestone: | 1.9.2 | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Bryan Hunt
(In reply to comment #0) Bryan, I'm not able to reproduce the problem in my environment. For your use case, what was the value of the input argument to PluginResourceLocatorImpl#encode( String ) ? And what were the values of the 2 variables (encodedLocation and target) *before* the call to encodedLocation = encodedLocation.replace( target, EMPTY_STRING ); Also, what was the resolved value set for $org_eclipse_datatools_workspacepath in your test environment? See comment #1. Feel free to re-open when more bug info is available. I am seeing similar problem in my attempt to run BIRT reports in WebviewerExample webapp (3.7.1) on tomcat. here is how my tomcat is running: # ps -eF | grep tomcat tomcat 20778 1 10 3375393 2049128 13 15:14 pts/2 00:00:56 /usr/java/jre1.6.0_29/bin/java -Djava.util.logging.config.file=/usr/share/apache-tomcat-7.0.23/conf/logging.properties -Xmx6144m -Xms6144m -Xmn2048m -XX:MaxPermSize=3072m -XX:+UseParallelGC -Djava.security.egd=file:/dev/./urandom -Dorg.eclipse.datatools_workspacepath=/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/apache-tomcat-7.0.23/endorsed -classpath /usr/share/apache-tomcat-7.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.23/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/apache-tomcat-7.0.23 -Dcatalina.home=/usr/share/apache-tomcat-7.0.23 -Djava.io.tmpdir=/usr/share/apache-tomcat-7.0.23/temp org.apache.catalina.startup.Bootstrap start As can be seen, -Dorg.eclipse.datatools_workspacepath is pointing to a valid directory (which gets created if not already existing). Still I see errors: Jan 24, 2012 2:14:34 PM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log WARNING: URI is not absolute Jan 24, 2012 2:14:34 PM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log SEVERE: Unable to determine the default workspace location. Check your OSGi-less platform configuration of the plugin or datatools workspace path. (In reply to comment #2) > See comment #1. Feel free to re-open when more bug info is available. Hi Linda, I am trying to migrate to 3.7.1 I have set the org.eclipse.datatools_workspacepath in catalina.sh, still I am getting the error. I am trying to open report giving a relative path to file (all my .rptdesign files are in rptfiles directory in WebViewerExample webapp) , with a request similar to: http://my.domain.com:8080/WebViewerExample/frameset?__report=rptfiles/birt_file_1020.rptdesign&some_other_params Please help/guide/resolve, my catalina.sh settings as below: java_io_tmpdir=/usr/share/apache-tomcat-7.0.23/temp org_eclipse_datatools_workspacepath=$java_io_tmpdir/workspace_dtp JAVA_OPTS="$JAVA_OPTS -Xmx6144m -Xms6144m -Xmn2048m -XX:MaxPermSize=3072m -XX:+UseParallelGC -Djava.security.egd=file:/dev/./urandom -Dorg.eclipse.datatools_workspacepath=$org_eclipse_datatools_workspacepath" ----- The workspace_dtp directory gets created on tomcat start (if not already existing). Also (maybe unrelated), another directory gets auto created with random trailing chars, eg: workspace_96b2d888-2145-4848-9dc1-69a420db4a8c ----- error: Jan 24, 2012 2:14:34 PM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log WARNING: URI is not absolute Jan 24, 2012 2:14:34 PM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log SEVERE: Unable to determine the default workspace location. Check your OSGi-less platform configuration of the plugin or datatools workspace path. (In reply to comment #4) I'd committed a patch to add some more logging to collect additional debugging info. It also has an interim workaround to skip the encoding step if an exception occurs. Git commmit log: http://git.eclipse.org/c/datatools/org.eclipse.datatools.connectivity.git/commit/?h=DTP_1_9_2_Branch&id=3ff54cfb2b0b41d6fd33a4c428f341205bfaa770 Please provide feedback with the additional logging info from your deployment environment, so the encoding bug can be addressed for your use case. The patch is in the latest DTP 1.9.2 RC2 Nightly build, available for download at: http://www.eclipse.org/datatools/downloads.php Note that DTP 1.9.2 works with BIRT 3.7.2. To try out the patch with BIRT, download BIRT 3.7.2 RC1 release: http://download.eclipse.org/birt/downloads/build.php?build=M-R1-3.7.2RC1-201201171144 You can extract just the bundle jar (org.eclipse.datatools.connectivity_1.2.4.v201201260252.jar or later) from the DTP 1.9.2 RC2 nightly build download package. And copy the bundle jar into the BIRT 3.7.2 RC1 installation, e.g. in the ReportEngine/lib and WebViewerExample/WEB-INF/lib folders of the BIRT runtime Report Engine. To avoid any version conflict, it would be better to remove the older bundle version (org.eclipse.datatools.connectivity_1.2.4.v201110141251.jar) from the installation. Hi Linda,
Thanks for the quick patch..
The reports are working now, though it gave the following error/warning in the log when running a report for the first time, but even the first time, the report did open without any problem.
Also, the message was not printed when same (or any other) report was accessed again.
A directory /usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.datatools.connectivity was auto-created containing
driverManagerPreferences.xml
driverStorage.xml
ServerProfiles.bak
ServerProfiles.dat
---- this is the error/warning log ----
Jan 30, 2012 10:13:23 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/);
Exception message: URI is not absolute
Jan 30, 2012 10:13:23 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.datatools.connectivity); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.datatools.connectivity);
Exception message: URI is not absolute
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/);
Exception message: URI is not absolute
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb);
Exception message: URI is not absolute
java.lang.IllegalArgumentException: Unable to create sample database in /usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb.
at org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb.internal.impl.SampleDbFactory.initSampleDb(SampleDbFactory.java:113)
at org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb.internal.impl.SampleDbFactory.setInitializationData(SampleDbFactory.java:77)
at org.eclipse.birt.core.framework.jar.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:51)
at org.eclipse.datatools.connectivity.internal.InternalProfileManager.initializeLocalDatabase(InternalProfileManager.java:1380)
at org.eclipse.datatools.connectivity.internal.InternalProfileManager.loadLocalRegisteredDatabases(InternalProfileManager.java:1360)
at org.eclipse.datatools.connectivity.internal.InternalProfileManager.loadProfiles(InternalProfileManager.java:1070)
at org.eclipse.datatools.connectivity.internal.InternalProfileManager.getProfiles(InternalProfileManager.java:150)
at org.eclipse.datatools.connectivity.internal.InternalProfileManager.saveChanges(InternalProfileManager.java:1018)
at org.eclipse.datatools.connectivity.VersionProviderConnection.updateVersionCache(VersionProviderConnection.java:91)
at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:114)
at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:73)
at org.eclipse.datatools.enablement.internal.mysql.connection.JDBCMySQLConnectionFactory.createConnection(JDBCMySQLConnectionFactory.java:28)
at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)
at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)
at org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfoImpl.initializeJDBCConnection(ConnectionInfoImpl.java:705)
at org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfoImpl.<init>(ConnectionInfoImpl.java:690)
at org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFactory.createConnection(ConnectionFactory.java:38)
at org.eclipse.datatools.connectivity.sqm.core.SQMConnectionFactory.createConnection(SQMConnectionFactory.java:45)
at org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFactory.createConnection(ConnectionFactory.java:59)
at org.eclipse.datatools.connectivity.internal.ConnectionFactoryAdapterProvider.createConnection(ConnectionFactoryAdapterProvider.java:114)
at org.eclipse.datatools.connectivity.internal.ManagedConnection.createConnection(ManagedConnection.java:163)
at org.eclipse.datatools.connectivity.internal.CreateConnectionJob.run(CreateConnectionJob.java:56)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
SEVERE: Unable to create sample database in /usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb.
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/);
Exception message: URI is not absolute
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.report.data.oda.jdbc.dbprofile.sampledb);
Exception message: URI is not absolute
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/);
Exception message: URI is not absolute
Jan 30, 2012 10:13:25 AM org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
WARNING: PluginResourceLocatorImpl#encode(String): Unable to encode workspace location (/usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.runtime); invalid encodedLocation (usr/share/apache-tomcat-7.0.23/temp/workspace_dtp/org.eclipse.birt.runtime);
Exception message: URI is not absolute
--
So using the BIRT Runtime 3.7.2_RC1 with org.eclipse.datatools.connectivity_1.2.4.v201201260252.jar, the reports are working fine in the WebViewerExample (using connection profile data source)
(In reply to comment #6) Thanks for the feedback and the log messages. It was very helpful. I have now replaced the interim workaround with a fix for the original encoding bug, which apparently occurred when running on Linus and MacOS. http://git.eclipse.org/c/datatools/org.eclipse.datatools.connectivity.git/commit/?h=DTP_1_9_2_Branch&id=9fb21c5295cf9a9d22f90ef52e9efae4751a1b05 With the latest fix, you should no longer see the warning log message. It would be great if you can help try out the latest fix patch, available in the DTP 1.9.2 RC3 Integration build: http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/dtp-1.9.2RC3-201202050500.zip You can extract just the bundle jar (org.eclipse.datatools.connectivity_1.2.4.v201202041105.jar or later) from the RC3 build download package. And copy the bundle jar into the BIRT 3.7.2 RC1 installation (or later), like before for the test. Build Identifier: eclipse indigo and galileo,birt 3.7.2 all in one,birt runtime
3.7.2,linux 10.4,postgresql 9i,apache 5.5.34
hi i have installed birt 3.7.2 all in one with indigo . i have correctly make 2
report on db postgresql : 1 with jdbc data source and 1 with jdbc database
connection with query builder . All project works correcly. I have connect my
apache 5.5.34 in eclipse galileo and i have make a folder on workspace that
contain all file of birt runtime 3.7.2 and i have insert my two report designer
into this folder , so an ant file deploy all file into webapp folder of tomcat.
when i start the server the first project with jdbc data source work correctly
, but the second dont' work and show that errors:
Table (id = 1778):
+ An exception occurred during processing. Please see the following message for
details:
Cannot open the connection for the driver:
org.eclipse.birt.report.data.oda.jdbc.dbprofile.
org.eclipse.datatools.connectivity.oda.OdaException ;
java.lang.IllegalStateException: Unable to determine the default workspace
location. Check your OSGi-less platform configuration of the plugin or
datatools workspace path. (Element ID:1778)
7-mag-2012 11.31.02
org.eclipse.datatools.connectivity.oda.profile.provider.ProfilePropertyProviderImpl
getConnectionProfile
AVVERTENZA: No connection profile is found by its specified name: null
7-mag-2012 11.31.02
org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
GRAVE: Unable to determine the default workspace location. Check your
OSGi-less platform configuration of the plugin or datatools workspace path.
7-mag-2012 11.31.02
org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
GRAVE: Unable to determine the default workspace location. Check your
OSGi-less platform configuration of the plugin or datatools workspace path.
i don't know how can i resolve this problem please help me if you can thank
you
|