Repository: cxf Updated Branches: refs/heads/master c4e4b45dc -> 25c653933
CXF-7371: support for Java8-constants This closes #300 Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/25c65393 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/25c65393 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/25c65393 Branch: refs/heads/master Commit: 25c653933bc38c1ecc16d7283dd3ff0a106ac52c Parents: c4e4b45 Author: bbodnar <[email protected]> Authored: Sun Aug 6 23:01:57 2017 +0200 Committer: Daniel Kulp <[email protected]> Committed: Thu Aug 17 11:11:04 2017 -0400 ---------------------------------------------------------------------- .../apache/cxf/wsdl/service/factory/ClassReader.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/25c65393/rt/wsdl/src/main/java/org/apache/cxf/wsdl/service/factory/ClassReader.java ---------------------------------------------------------------------- diff --git a/rt/wsdl/src/main/java/org/apache/cxf/wsdl/service/factory/ClassReader.java b/rt/wsdl/src/main/java/org/apache/cxf/wsdl/service/factory/ClassReader.java index 8a26d4e..d9dde8e 100644 --- a/rt/wsdl/src/main/java/org/apache/cxf/wsdl/service/factory/ClassReader.java +++ b/rt/wsdl/src/main/java/org/apache/cxf/wsdl/service/factory/ClassReader.java @@ -52,6 +52,8 @@ class ClassReader extends ByteArrayInputStream { private static final int CONSTANT_FIELDREF = 9; private static final int CONSTANT_METHODREF = 10; private static final int CONSTANT_INTERFACE_METHOD_REF = 11; + private static final int CONSTANT_METHOD_HANDLE = 15; + private static final int CONSTANT_METHOD_TYPE = 16; private static final int CONSTANT_STRING = 8; private static final int CONSTANT_INTEGER = 3; private static final int CONSTANT_FLOAT = 4; @@ -59,6 +61,7 @@ class ClassReader extends ByteArrayInputStream { private static final int CONSTANT_DOUBLE = 6; private static final int CONSTANT_NAME_AND_TYPE = 12; private static final int CONSTANT_UTF_8 = 1; + private static final int CONSTANT_INVOKE_DYNAMIC = 18; /** * the constant pool. constant pool indices in the class file directly index * into this array. The value stored in this array is the position in the @@ -318,15 +321,22 @@ class ClassReader extends ByteArrayInputStream { case CONSTANT_METHODREF: case CONSTANT_INTERFACE_METHOD_REF: case CONSTANT_NAME_AND_TYPE: + case CONSTANT_INVOKE_DYNAMIC: // 2x short: (bootstrap-method, name-and-type) readShort(); // class index or (12) name index readShort(); // string index or class index break; + case CONSTANT_METHOD_HANDLE: + read(); // reference kind + readShort(); // reference index + break; + case CONSTANT_CLASS: case CONSTANT_STRING: + case CONSTANT_METHOD_TYPE: - readShort(); // string index or class index + readShort(); // string-, class- or method-index break; case CONSTANT_LONG: @@ -354,7 +364,7 @@ class ClassReader extends ByteArrayInputStream { default: // corrupt class file - throw new IllegalStateException(); + throw new IllegalStateException("unhandled constant \"" + c + "\""); } } }
