[
https://issues.apache.org/jira/browse/DERBY-6650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14054892#comment-14054892
]
Knut Anders Hatlen commented on DERBY-6650:
-------------------------------------------
The dependency on javax.management.MBeanServerConnection seems to be in the
Lucene library, and not in the Derby code or tests.
With the Lucene 4.7.1 jars on the class path, the following line of Java code
will fail with "java.lang.ClassNotFoundException:
javax.management.MBeanServerConnection" on Java SE 8 Compact Profile 2:
{noformat}
Class.forName("org.apache.lucene.index.BufferedUpdates");
{noformat}
With Lucene 4.8.1 or 4.9.0 the above forName() call does not fail on compact
profile 2. However, Derby's Lucene support is not compatible with Lucene > 4.7,
so the tests will still fail after upgrading the jar files (with
AbstractMethodErrors instead of NoClassDefFoundErrors).
I guess that means we'll have to disable the Lucene tests on platforms that
don't support JMX, until the Lucene plugin is updated to work on 4.8 or higher.
> Lucene tests fail on compact profile 2
> --------------------------------------
>
> Key: DERBY-6650
> URL: https://issues.apache.org/jira/browse/DERBY-6650
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.11.0.0
> Environment: java version "1.8.0_05"
> Java(TM) SE Embedded Runtime Environment (build 1.8.0_05-b13, profile
> compact2, headless)
> Java HotSpot(TM) Embedded Server VM (build 25.5-b02, mixed mode)
> Reporter: Knut Anders Hatlen
>
> http://download.java.net/javadesktop/derby/request_5593638/javadb-task-3898689.html
> {noformat}
> java.sql.SQLException: The exception 'java.lang.NoClassDefFoundError:
> javax/management/MBeanServerConnection' was thrown while evaluating an
> expression.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:107)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:133)
> at org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:255)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:431)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2396)
> at
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1430)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1709)
> at
> org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStatement(EmbedCallableStatement.java:134)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeLargeUpdate(EmbedPreparedStatement.java:320)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:309)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.assertUpdateCount(BaseJDBCTestCase.java:1415)
> at
> org.apache.derbyTesting.functionTests.tests.lang.LuceneSupportTest.testCreateAndQueryIndex(LuceneSupportTest.java:115)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:118)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:440)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:457)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> Caused by: ERROR 38000: The exception 'java.lang.NoClassDefFoundError:
> javax/management/MBeanServerConnection' was thrown while evaluating an
> expression.
> at
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:290)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory.java:162)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:74)
> Caused by: java.lang.NoClassDefFoundError:
> javax/management/MBeanServerConnection
> at
> org.apache.lucene.index.BufferedUpdates.<clinit>(BufferedUpdates.java:53)
> at
> org.apache.lucene.index.DocumentsWriterDeleteQueue.<init>(DocumentsWriterDeleteQueue.java:86)
> at
> org.apache.lucene.index.DocumentsWriterDeleteQueue.<init>(DocumentsWriterDeleteQueue.java:82)
> at
> org.apache.lucene.index.DocumentsWriter.<init>(DocumentsWriter.java:115)
> at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:772)
> at
> org.apache.derby.optional.lucene.LuceneSupport$5.run(LuceneSupport.java:1694)
> at
> org.apache.derby.optional.lucene.LuceneSupport$5.run(LuceneSupport.java:1689)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.derby.optional.lucene.LuceneSupport.getIndexWriter(LuceneSupport.java:1687)
> at
> org.apache.derby.optional.lucene.LuceneSupport.createOrRecreateIndex(LuceneSupport.java:514)
> at
> org.apache.derby.optional.lucene.LuceneSupport.createIndex(LuceneSupport.java:421)
> at
> org.apache.derby.exe.ac7e434f4ax0147x151ex54d2x0000594f050da.g0(Unknown
> Source)
> at
> org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
> at
> org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:75)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:470)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:349)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1338)
> Caused by: java.lang.ClassNotFoundException:
> javax.management.MBeanServerConnection
> at java.net.URLClassLoader$1.run(Unknown Source)
> at java.net.URLClassLoader$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)