jiang2015 edited a comment on issue #7761:
URL: https://github.com/apache/shardingsphere/issues/7761#issuecomment-712738297


   In 【MetaDataConnectionAdapterTest】  I add one function as follows:
   
   ```
   private final DatabaseType **databaseType4Oracle** = 
DatabaseTypes.getTrunkDatabaseType("Oracle");
   
       @Test
       public void assertGetSchema4Oracle() throws SQLException {
           when(connection.getSchema()).thenReturn(TEST_SCHEMA);
           MetaDataConnectionAdapter connectionAdapter = new 
MetaDataConnectionAdapter(**databaseType4Oracle**, connection);
           assertThat(connectionAdapter.getSchema(), is(TEST_SCHEMA));
       }
   ```
   
   when test, NullPointerException occured as follow 
   
   java.lang.NullPointerException
        at 
org.apache.shardingsphere.infra.metadata.model.physical.jdbc.handler.impl.OracleJDBCSchemaHandler.getSchema(OracleJDBCSchemaHandler.java:46)
        at 
org.apache.shardingsphere.infra.metadata.model.physical.jdbc.MetaDataConnectionAdapter.getSchema(MetaDataConnectionAdapter.java:79)
        at 
org.apache.shardingsphere.infra.metadata.model.physical.jdbc.MetaDataConnectionAdapterTest.assertGetSchema4Oracle(MetaDataConnectionAdapterTest.java:78)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at 
org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:68)
        at 
org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:74)
        at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:39)
        at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:161)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
        at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
        at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
   
   the reason:
   OracleJDBCSchemaHandler 
   ```
   
       public String getSchema(final Connection connection) {
           try {
               return 
Optional.ofNullable(connection.getMetaData().getUserName()).map(String::toUpperCase).orElse(null);
           } catch (final SQLException ignored) {
               return null;
           }
       }
   
   ```
   connection.getMetaData() is null, this issue how to add testcase ,please 
give me advice ,thanks。
   @terrymanu 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to