[
https://issues.apache.org/jira/browse/SOLR-1794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Muir updated SOLR-1794:
------------------------------
Attachment: SOLR-1794.patch
I don't understand why reflection is being used here at all.
getCharacterStream and getBinaryStream are both defined as public methods in
the java.sql.Clob/Blob interfaces since java 1.4, so all the reflection and
comments like:
{noformat}
//Most of the JDBC drivers have getBinaryStream defined as public
{noformat}
make no sense to me... of course its public, it *must be* !
all tests patch with the reflection removed.
> Dataimport of CLOB fields fails when getCharacterStream() is defined in a
> superclass
> ------------------------------------------------------------------------------------
>
> Key: SOLR-1794
> URL: https://issues.apache.org/jira/browse/SOLR-1794
> Project: Solr
> Issue Type: Bug
> Components: contrib - DataImportHandler
> Affects Versions: 1.4
> Environment: Oracle WebLogic 10.3.2
> Reporter: Gunnar Gauslaa Bergem
> Attachments: FieldReaderDataSource.java, SOLR-1794.patch
>
>
> When running Solr on WebLogic application server 10.3.2, the dataimport for
> CLOB fields are failing. Line 109 in FieldReaderDataSource.java illustrates
> the problem:
> Method m = clob.getClass().getDeclaredMethod("getCharacterStream");
> Since getDeclaredMethod instead of getMethod is used, the
> getCharacterStream() method will not be found if it is defined in a
> superclass of clob. This is exactly what
> happens in e.g. WebLogic 10.3.2, since the object returned is a dynamically
> created wrapper class called Clob_oracle_sql_CLOB. This class does not define
> getCharacterStream(), but it inherits from another class that does. This
> problem will also occur in other places where getDeclaredMethod used in
> conjunction with the CLOB
> or BLOB datatypes.
> Stacktrace:
> org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to get
> reader from clob Processing Document # 1
> at
> org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
> at
> org.apache.solr.handler.dataimport.FieldReaderDataSource.readCharStream(FieldReaderDataSource.java:118)
> at
> org.apache.solr.handler.dataimport.ClobTransformer.readFromClob(ClobTransformer.java:69)
> at
> org.apache.solr.handler.dataimport.ClobTransformer.transformRow(ClobTransformer.java:61)
> at
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.applyTransformer(EntityProcessorWrapper.java:195)
> at
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:241)
> at
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357)
> at
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:383)
> at
> org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242)
> at
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180)
> at
> org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331)
> at
> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389)
> at
> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370)
> Caused by: java.lang.NoSuchMethodException:
> weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB.getCharacterStream()
> at java.lang.Class.getDeclaredMethod(Class.java:1937)
> at
> org.apache.solr.handler.dataimport.FieldReaderDataSource.readCharStream(FieldReaderDataSource.java:109)
> ... 11 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]