[jira] [Commented] (FELIX-6157) Converter build fails with Java 12
[ https://issues.apache.org/jira/browse/FELIX-6157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17722814#comment-17722814 ] Konrad Windszus commented on FELIX-6157: FTR {{org.osgi:org.osgi.util.converter}} prior to version 1.0.8 is affected from this bug as well. > Converter build fails with Java 12 > -- > > Key: FELIX-6157 > URL: https://issues.apache.org/jira/browse/FELIX-6157 > Project: Felix > Issue Type: Improvement > Components: Converter >Affects Versions: converter-1.0.8 >Reporter: David Bosschaert >Assignee: David Bosschaert >Priority: Major > Fix For: converter-1.0.10 > > > When I build the converter project with Java 12 I get a lot of failures, see > below. > These problems don't exist with Java 11. This needs to be investigated and > fixed. > > {code:java} > [INFO] --- > [INFO] T E S T S > [INFO] --- > [INFO] Running org.osgi.util.converter.UtilTest > [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 > s - in org.osgi.util.converter.UtilTest > [INFO] Running org.osgi.util.converter.ConverterBuilderTest > [ERROR] Tests run: 9, Failures: 1, Errors: 0, Skipped: 3, Time elapsed: 0.046 > s <<< FAILURE! - in org.osgi.util.converter.ConverterBuilderTest > [ERROR] testWildcardAdapter1(org.osgi.util.converter.ConverterBuilderTest) > Time elapsed: 0.041 s <<< FAILURE! > org.junit.ComparisonFailure: expected:<[1]> but was:<[describeConstable]> > at > org.osgi.util.converter.ConverterBuilderTest.testWildcardAdapter1(ConverterBuilderTest.java:192) > [INFO] Running org.osgi.util.converter.ConverterTest > [ERROR] Tests run: 77, Failures: 6, Errors: 13, Skipped: 0, Time elapsed: > 0.104 s <<< FAILURE! - in org.osgi.util.converter.ConverterTest > [ERROR] testCustomErrorHandling(org.osgi.util.converter.ConverterTest) Time > elapsed: 0.001 s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot convert 12 to class > java.lang.Integer > at > org.osgi.util.converter.ConverterTest.testCustomErrorHandling(ConverterTest.java:495) > [ERROR] > testFromArrayToGenericOrderPreservingSet(org.osgi.util.converter.ConverterTest) > Time elapsed: 0.001 s <<< ERROR! > java.lang.ClassCastException: class java.lang.String cannot be cast to class > java.lang.Long (java.lang.String and java.lang.Long are in module java.base > of loader 'bootstrap') > at > org.osgi.util.converter.ConverterTest.testFromArrayToGenericOrderPreservingSet(ConverterTest.java:313) > [ERROR] testDTOFieldShadowing(org.osgi.util.converter.ConverterTest) Time > elapsed: 0.006 s <<< FAILURE! > java.lang.AssertionError: expected:<{ping=test, count=THREE, pong=0, > embedded=null}> but was:<{count=describeConstable, pong=describeConstable, > embedded=null, ping=test}> > at > org.osgi.util.converter.ConverterTest.testDTOFieldShadowing(ConverterTest.java:874) > [ERROR] testEnums(org.osgi.util.converter.ConverterTest) Time elapsed: 0.001 > s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot convert [] to class > org.osgi.util.converter.ConverterTest$TestEnum > at > org.osgi.util.converter.ConverterTest.testEnums(ConverterTest.java:212) > [ERROR] > testFromUnknownDataTypeViaString(org.osgi.util.converter.ConverterTest) Time > elapsed: 0 s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot convert 1234 to class > java.lang.Integer > at > org.osgi.util.converter.ConverterTest.testFromUnknownDataTypeViaString(ConverterTest.java:246) > [ERROR] testCharArrayConversion(org.osgi.util.converter.ConverterTest) Time > elapsed: 0.001 s <<< FAILURE! > org.junit.internal.ArrayComparisonFailure: arrays first differed at element > [0]; expected:<> but was: > at > org.osgi.util.converter.ConverterTest.testCharArrayConversion(ConverterTest.java:342) > Caused by: java.lang.AssertionError: expected:<> but was: > at > org.osgi.util.converter.ConverterTest.testCharArrayConversion(ConverterTest.java:342) > [ERROR] testPrefixDTO(org.osgi.util.converter.ConverterTest) Time elapsed: > 0.001 s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot create DTO class > org.osgi.util.converter.PrefixDTO > at > org.osgi.util.converter.ConverterTest.testPrefixDTO(ConverterTest.java:1288) > Caused by: org.osgi.util.converter.ConversionException: Cannot convert 327 to > class java.lang.Long > at > org.osgi.util.converter.ConverterTest.testPrefixDTO(ConverterTest.java:1288) > [ERROR] testFromGenericSetToLinkedList(org.osgi.util.converter.ConverterTest) > Time elapsed: 0.001 s <<< FAILURE! > java.lang.AssertionError: expected:<[123, 456]> but was:<[describeConstable, > describeConstable]> >
[jira] [Commented] (FELIX-6157) Converter build fails with Java 12
[ https://issues.apache.org/jira/browse/FELIX-6157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16909129#comment-16909129 ] David Bosschaert commented on FELIX-6157: - I looked a little bit into it. For example, the following test case starts failing: ConverterTest.testFromUnknownDataTypeViaString() with this error: {code:java} org.osgi.util.converter.ConversionException: Cannot convert 1234 to class java.lang.Integer {code} This is caused by the fact that for a java.lang.Integer the ConvertingImpl.isMapType() incorrectly returns true. This in turn is caused by the ConvertingImpl.getInterfaces() to return a non-zero set for java.lang.Integer. That in turn is caused by the fact that from Java 12 onwards java.lang.Integer implements two new interfaces: [interface java.lang.constant.Constable, interface java.lang.constant.ConstantDesc] These 2 interfaces should be added to the NO_MAP_VIEW_TYPES constant in ConvertingImpl but only in such a way that it doesn't cause any problems for pre-java 12 releases. > Converter build fails with Java 12 > -- > > Key: FELIX-6157 > URL: https://issues.apache.org/jira/browse/FELIX-6157 > Project: Felix > Issue Type: Improvement > Components: Converter >Affects Versions: converter-1.0.8 >Reporter: David Bosschaert >Assignee: David Bosschaert >Priority: Major > > When I build the converter project with Java 12 I get a lot of failures, see > below. > These problems don't exist with Java 11. This needs to be investigated and > fixed. > > {code:java} > [INFO] --- > [INFO] T E S T S > [INFO] --- > [INFO] Running org.osgi.util.converter.UtilTest > [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 > s - in org.osgi.util.converter.UtilTest > [INFO] Running org.osgi.util.converter.ConverterBuilderTest > [ERROR] Tests run: 9, Failures: 1, Errors: 0, Skipped: 3, Time elapsed: 0.046 > s <<< FAILURE! - in org.osgi.util.converter.ConverterBuilderTest > [ERROR] testWildcardAdapter1(org.osgi.util.converter.ConverterBuilderTest) > Time elapsed: 0.041 s <<< FAILURE! > org.junit.ComparisonFailure: expected:<[1]> but was:<[describeConstable]> > at > org.osgi.util.converter.ConverterBuilderTest.testWildcardAdapter1(ConverterBuilderTest.java:192) > [INFO] Running org.osgi.util.converter.ConverterTest > [ERROR] Tests run: 77, Failures: 6, Errors: 13, Skipped: 0, Time elapsed: > 0.104 s <<< FAILURE! - in org.osgi.util.converter.ConverterTest > [ERROR] testCustomErrorHandling(org.osgi.util.converter.ConverterTest) Time > elapsed: 0.001 s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot convert 12 to class > java.lang.Integer > at > org.osgi.util.converter.ConverterTest.testCustomErrorHandling(ConverterTest.java:495) > [ERROR] > testFromArrayToGenericOrderPreservingSet(org.osgi.util.converter.ConverterTest) > Time elapsed: 0.001 s <<< ERROR! > java.lang.ClassCastException: class java.lang.String cannot be cast to class > java.lang.Long (java.lang.String and java.lang.Long are in module java.base > of loader 'bootstrap') > at > org.osgi.util.converter.ConverterTest.testFromArrayToGenericOrderPreservingSet(ConverterTest.java:313) > [ERROR] testDTOFieldShadowing(org.osgi.util.converter.ConverterTest) Time > elapsed: 0.006 s <<< FAILURE! > java.lang.AssertionError: expected:<{ping=test, count=THREE, pong=0, > embedded=null}> but was:<{count=describeConstable, pong=describeConstable, > embedded=null, ping=test}> > at > org.osgi.util.converter.ConverterTest.testDTOFieldShadowing(ConverterTest.java:874) > [ERROR] testEnums(org.osgi.util.converter.ConverterTest) Time elapsed: 0.001 > s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot convert [] to class > org.osgi.util.converter.ConverterTest$TestEnum > at > org.osgi.util.converter.ConverterTest.testEnums(ConverterTest.java:212) > [ERROR] > testFromUnknownDataTypeViaString(org.osgi.util.converter.ConverterTest) Time > elapsed: 0 s <<< ERROR! > org.osgi.util.converter.ConversionException: Cannot convert 1234 to class > java.lang.Integer > at > org.osgi.util.converter.ConverterTest.testFromUnknownDataTypeViaString(ConverterTest.java:246) > [ERROR] testCharArrayConversion(org.osgi.util.converter.ConverterTest) Time > elapsed: 0.001 s <<< FAILURE! > org.junit.internal.ArrayComparisonFailure: arrays first differed at element > [0]; expected:<> but was: > at > org.osgi.util.converter.ConverterTest.testCharArrayConversion(ConverterTest.java:342) > Caused by: java.lang.AssertionError: expected:<> but was: > at >