Java Class Loading Priority for Legacy Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Java execution apparatuses face issues with class loading when the version of the class library bundled with an application differs from the version within the Java System, leading to potential faults and security concerns, especially when installing legacy applications with old class libraries into new Java Systems.

Innovation Solution

The apparatus prioritizes loading classes from the application library over the system library, ensuring stability and security by loading classes from the application library when versions differ, thereby avoiding faults and maintaining interoperability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the class library bundled with the application is used, then compatibility with the application is guaranteed, but the system cannot utilize updated classes from the Java System

Engineering Contradiction:
Improveapplication compatibilityVSAvoidsystem update capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The class loading system is segmented into two independent paths: one for loading classes from the application's bundled class library and another for loading classes from the Java System. This segmentation allows the system to selectively choose which class to load based on version compatibility requirements, resolving the contradiction between guaranteed compatibility and system update capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The class loading mechanism is made dynamic by introducing a version comparison step that determines which class library to use. The system dynamically switches between the bundled class library and the Java System class library based on version matching, enabling both compatibility assurance and system updates to coexist.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the Java System class library is used, then updated classes and security are improved, but version conflicts with legacy applications occur

Engineering Contradiction:
Improvesystem update capabilityVSAvoidapplication compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The class loading system is segmented into two independent paths: one for loading classes from the application's bundled class library and another for loading classes from the Java System. This segmentation allows the system to selectively choose which class to load based on version compatibility requirements, resolving the contradiction between guaranteed compatibility and system update capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements feedback by comparing class versions before loading. The version comparison result feeds back into the class loading decision, allowing the system to automatically select the appropriate class library based on version matching, thus preventing version conflicts while maintaining update capability.

Inventive Principle:
Principle #23Feedback

3Object-affected harmful factors

If class loading priority is given to the Java System library, then security and updates are prioritized, but legacy applications with old class libraries cannot run

Engineering Contradiction:
ImprovesecurityVSAvoidlegacy application support
Core Design Contradiction:
Object-affected harmful factorsVSAdaptability or versatility

Solution Approach 1:

The class loading mechanism is made dynamic by introducing a version comparison step that determines which class library to use. The system dynamically switches between the bundled class library and the Java System class library based on version matching, enabling both compatibility assurance and system updates to coexist.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the loading priority parameter dynamically based on version comparison results. When version mismatch is detected, the priority shifts to the bundled class library; when versions match, priority goes to the Java System library. This parameter change resolves the contradiction between security prioritization and legacy application support.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If the bundled class library is always used, then application compatibility is maintained, but security vulnerabilities in old libraries persist

Engineering Contradiction:
Improveapplication compatibilityVSAvoidsecurity vulnerabilities
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system implements feedback by comparing class versions before loading. The version comparison result feeds back into the class loading decision, allowing the system to automatically select the appropriate class library based on version matching, thus preventing version conflicts while maintaining update capability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the loading priority parameter dynamically based on version comparison results. When version mismatch is detected, the priority shifts to the bundled class library; when versions match, priority goes to the Java System library. This parameter change resolves the contradiction between security prioritization and legacy application support.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8732723B2Execution apparatus and method
Publication Date: 2014.05.20 CANON KK
  • US8732723B2 patent drawing
  • US8732723B2 patent drawing
  • US8732723B2 patent drawing

AI summary

An execution apparatus that executes a computer program executes the computer program and loads a class that is requested while the computer program is being executed. The loaded class is the class in response to the computer program that is being executed.