Hao Zhong created CASSANDRA-18487:
-------------------------------------

             Summary: MappedByteBufferIndexInputProvider can better throw 
UndeclaredThrowableException
                 Key: CASSANDRA-18487
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18487
             Project: Cassandra
          Issue Type: Bug
            Reporter: Hao Zhong


MappedByteBufferIndexInputProvider has the following code:
{code:java}
 private static BufferCleaner newBufferCleaner(final MethodHandle unmapper) {

...

try {
        unmapper.invokeExact(buffer);
      } catch (Throwable t) {
        throw new IOException("Unable to unmap the mapped buffer: " + 
resourceDescription, t);
      }

 }{code}
This method rethrow IOException, when calling invokeExact fails. However, other 
methods throw UndeclaredThrowableException for the same errors. For example, 
SnowballProgram.find_among is as follows:
{code:java}
protected int find_among(Among v[]) {

 ..,
 
try {
          res = (boolean) w.method.invokeExact(this);
        } catch (Error | RuntimeException e) {
          throw e;
        } catch (Throwable e) {
          throw new UndeclaredThrowableException(e);
        }
}{code}
Another example is AttributeFactory.{color:#000000}createInstance{color}

:
{code:java}
 
 protected A createInstance() {
        try {
          // be explicit with casting, so javac compiles correct call to 
polymorphic signature:
          final AttributeImpl impl = (AttributeImpl) constr.invokeExact();
          // now cast to generic type:
          return (A) impl;
        } catch (Error | RuntimeException e) {
          throw e;
        } catch (Throwable e) {
          throw new UndeclaredThrowableException(e);
        }
      }

   {code}
UndeclaredThrowableException looks more reasonable.  Can this be fixed?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to