JEP 384

GPTKB entity

Statements (961)
Predicate Object
gptkbp:instance_of gptkb:Java_2_Platform
gptkb:technique
gptkb:JEP
gptkbp:access Records can implement interfaces.
Records are implicitly final.
Records cannot extend other classes.
gptkbp:adapted_into Adaptable to changing needs.
Flexible design.
gptkbp:addresses locale-sensitive operations
Security risks in deserialization
boilerplate code reduction
issues with existing tooling
gptkbp:adds new APIs for internationalization
gptkbp:advances Java developers
gptkbp:affects Java developers
gptkbp:aims_to simplify data modeling
simplify internationalization in Java applications
improve observability of Java applications
stream Java Flight Recorder events
enhance the Java development experience
gptkbp:aims_to_improve tooling complexity
gptkbp:allows event streaming over network
gptkbp:approves gptkb:Open_JDK_community
September 2020
JDK Release Team
gptkbp:author gptkb:Alan_Bateman
gptkb:Brian_Goetz
gptkb:J._B._Rainsberger
gptkb:Javac_Team
gptkb:Jeppe_Cramon
gptkb:Mark_Reinhold
JDK Release Team
JEP 384 Author
gptkbp:benefits Reduces boilerplate code.
Continuous feedback loop.
Cleaner code, fewer errors.
Simplifies data modeling.
Supports pattern matching.
Enhanced security and flexibility.
Expected to enhance Java ecosystem.
Improved deserialization capabilities.
Reduces boilerplate code for data carriers.
Regular evaluations scheduled.
Enhances readability.
Improves error handling.
Simplifies multithreading.
Improves string handling in Java.
Improved performance for memory-intensive applications.
Increased control over deserialization.
gptkbp:can_be_extended_by future JEPs
gptkbp:can_be_used_for debugging purposes
gptkbp:cause Java EE and CORBA are no longer widely used.
gptkbp:challenges Complexity in implementation.
Ensuring backward compatibility.
Ensuring compatibility with existing systems.
Balancing security and performance.
Ensuring compatibility with existing applications.
gptkbp:collaborated_with gptkb:Open_JDK_contributors
open-source projects
gptkbp:collaboration Java developers
Collaborative effort with the community.
gptkbp:collaborative_projects multiple stakeholders
Collaboration with industry experts.
Integrates with existing Java frameworks.
gptkbp:community_engagement Active discussions on forums.
gptkbp:community_feedback Positive reception.
Positive feedback from the community.
Positive feedback from early adopters.
Promotes best practices.
Positive feedback from developers.
Positive response from the community.
Simplifies code.
Encourages immutability.
Gathered during preview.
gptkbp:community_involvement Active community involvement in discussions.
gptkbp:community_outreach Engaging with the developer community.
Engagement with Java user groups.
gptkbp:community_support Strong community support.
Active community support.
gptkbp:compatibility Backward compatible with existing Java code.
Backward compatible.
Backward compatible with existing serialization.
Maintains backward compatibility.
Backward compatibility may be affected.
gptkbp:concluded_on March 2021
A significant improvement to the Java language.
The JEP was accepted and implemented.
The Security Manager is deprecated and will be removed.
gptkbp:conformance Conforms to Java SE specifications.
Conforms to Java language specifications.
gptkbp:consequences Improved readability and maintainability of code.
Legacy applications may need to migrate.
gptkbp:constructor Compact constructor syntax.
gptkbp:contributes_to gptkb:Java_security_model
Modern Java features
Java's functional programming capabilities.
gptkbp:contribution Contributed to the evolution of Java.
Open for contributions from the community.
Open for contributions.
gptkbp:created 2020-01-14
2020-09-15
2019-09-17
gptkbp:date 2019-09-17
gptkbp:dependency None.
gptkbp:describes gptkb:JFR:_Event_Streaming
gptkb:JDK_15
New Internationalization Enhancements
JDK 14 Support for the Java SE 14 Language
gptkbp:description Enhances the instanceof operator to allow pattern matching.
Enhances the Java programming language with record patterns.
This JEP proposes to remove the Java EE and CORBA modules from the JDK.
Provides a new class type for modeling immutable data.
Provides a mechanism for context-specific deserialization.
Enhances the String conversion mechanism in Java.
This JEP proposes to return unused memory to the operating system promptly.
Introduces a new string literal syntax that allows for context-sensitive string literals.
gptkbp:developed_by gptkb:Open_JDK_community
gptkbp:developer Training resources to be developed.
gptkbp:discusses gptkb:Java_Community_Process
https://openjdk.java.net/jeps/384
JDK mailing list
Open JDK mailing list
Open JDK mailing lists
Open JDK mailing lists.
Pattern Matching in Java
https://openjdk.java.net/jeps/384# Discussion
The JDK mailing list and Open JDK discussions.
gptkbp:effective_date 2021-06-15
gptkbp:enables conditional execution
More concise code
immutable data structures
easier data transfer
event consumption by external tools
real-time analysis of application performance
Better data encapsulation.
gptkbp:encourages Separation of concerns.
Best practices in serialization
Declarative data structures.
Declarative programming style.
Functional interfaces.
Use of immutability.
Type-safe APIs.
gptkbp:end_date 2020-01-14
2021-03-16
TBD
gptkbp:enhances gptkb:Java_Flight_Recorder
gptkb:Java_programming_language
Type safety
type safety
pattern matching
number formatting
Java programming language.
Code maintainability.
Potential for additional features.
Potential for more pattern matching features.
Existing deserialization mechanisms
Support for annotations.
Pattern matching for records.
existing internationalization features
Java Flight Recorder capabilities
Java's data handling capabilities.
Java's expressiveness.
Java's object-oriented features.
Java's type system.
Record types in switch expressions.
Sealed records.
IDE support for Java
user experience with Java tools
Integration with other JEPs.
gptkbp:equals_method Automatically generated.
gptkbp:evaluates Regular reviews and assessments.
Security, performance, usability.
gptkbp:example if (obj instanceof String s) { ... }
Code examples provided.
Pattern matching in switch expressions.
record Point(int x, int y) {}
Custom deserialization logic.
record Person(String name, int age) {}
Pattern matching with records.
String s = " Hello, ${name}";
Many examples in the community.
gptkbp:exemplifies type checking
Data class creation.
gptkbp:facilitates data analysis
pattern matching
Null checks
Data validation.
Data transfer.
Data transformation.
Pattern matching.
global application development
data collection for profiling
API evolution.
faster build times
gptkbp:feature Pattern Matching
Automatic generation of equals(), hash Code(), and to String() methods.
gptkbp:features Pattern Matching for instanceof.
gptkbp:feedback Positive from the Java community.
gptkbp:feedback_mechanism Community forums.
Feedback through Open JDK.
gptkbp:first_preview gptkb:JDK_14
gptkbp:first_published 2021-01-12
2020-09-15
gptkbp:formulation record Point(int x, int y) {}
Uses 'record' keyword.
Automatically generates accessors.
Defines fields in the header.
Generates equals() and hash Code() methods.
Generates to String() method.
Introduces 'record' keyword.
gptkbp:funding Supported by Oracle.
gptkbp:future_plans Continued support and updates.
gptkbp:future_prospects Further enhancements to pattern matching.
Further enhancements and optimizations.
Monitor performance impact post-implementation.
Potential enhancements in future JDKs.
gptkbp:goals Improve deserialization process.
gptkbp:governance Open JDK governance model.
Managed by Open JDK governance.
gptkbp:has_advisory_board Open JDK advisory board.
gptkbp:has_community Open JDK mailing lists.
gptkbp:has_documentation Extensive documentation available.
Included in JDK 16 documentation.
Comprehensive documentation planned.
Comprehensive documentation to be provided.
Detailed in JDK documentation.
gptkbp:has_limitations Cannot be abstract.
Cannot extend other classes.
Cannot have mutable fields.
Cannot have non-final fields.
Cannot implement interfaces.
Cannot have instance initializers.
Cannot have non-static methods.
Cannot have static initializers.
gptkbp:has_project Strong support from Oracle.
gptkbp:has_version Part of JDK 14.
gptkbp:hash_code_method Automatically generated.
gptkbp:historical_achievement Initial proposal, review, implementation.
https://www.w3.org/2000/01/rdf-schema#label JEP 384
gptkbp:impact Improves user experience.
Scalable solution.
Technical challenges.
Enhances the Java programming language.
Improves pattern matching capabilities.
Reduces the size of the JDK
Simplifies data modeling.
Simplifies the common coding pattern of type checking and casting.
Applications that rely on the Security Manager may need to be modified.
Improved security for applications using deserialization
Simplifies type checks
Significant impact on Java applications.
Potentially affects all Java applications using serialization.
Improves the usability of String conversion.
Enhances the Java serialization mechanism.
Potentially reduce memory footprint.
Applications using JMX will need to find alternatives
Removes legacy modules from the JDK
Significant impact on Java programming.
gptkbp:improves Code readability
code readability
Data integrity.
Data consistency.
Locale support
date and time formatting
Data handling.
Code readability.
Pattern matching capabilities
Application security posture
event handling efficiency
observability of Java applications
Data manipulation.
performance of Java tools
gptkbp:include new capabilities for Java tools
gptkbp:includes new language features
new resource bundles
enhancements to the Java language server
improvements to the Java compiler
gptkbp:influenced_by Scala case classes.
gptkbp:influences future Java language features
Future JEPs on serialization
gptkbp:innovation Innovative approach to deserialization.
gptkbp:introduced new classes for internationalization
gptkbp:introduced_in gptkb:Java_14
gptkb:Java_SE_17
gptkb:Java_16
gptkb:Java_SE_16
gptkb:JDK_14
gptkb:JDK_16
gptkb:Java_SE_15
gptkbp:involved_technology gptkb:Garbage_Collection
Java Development Kit.
Java Language Specification.
Java Language, JVM.
Java SE 17.
Java SE 18.
Java SE.
Java SE 14.
Java SE 15.
Java SE 16.
Java SE 19.
Java SE 20.
Java Virtual Machine.
Java Serialization API.
Java API.
gptkbp:is_a_key_component_of JDK 14 features
gptkbp:is_a_proposal_that_seeks_to enhance the overall Java ecosystem.
gptkbp:is_about records
Context-Specific Deserialization Filters
gptkbp:is_adopted_by gptkb:Java_frameworks
gptkb:Java_SE_platform
gptkb:Java_community
enterprise applications
cloud-native applications
microservices architecture
open-source projects
Java applications
Open source projects
Enterprise applications
Java developers
cloud computing solutions
cloud applications
Cloud applications
Expected to be widely adopted.
High adoption rate among developers.
High adoption rate in new projects.
Java developers.
Widely adopted in Java 16.
Widely adopted in Java applications.
Learning curve for developers.
Increasing adoption rate.
Adopted in enterprise applications.
gptkbp:is_aimed_at improving code quality
modernizing Java tools
gptkbp:is_aligned_with Java's long-term goals
gptkbp:is_analyzed_in gptkb:Java_conferences
performance benchmarks
Code reviews
software analysts
software engineering studies
Java research papers
Java security audits
gptkbp:is_associated_with Java tooling ecosystem
gptkbp:is_available_in JDK 14 and later versions
gptkbp:is_beneficial_for gptkb:developers
system administrators
gptkbp:is_cited_in academic literature
Java textbooks
Security research papers
Java research articles
Java internationalization literature
Java SE 15 documentation
subsequent JEPs
gptkbp:is_compared_to gptkb:JEP_386
other programming languages
Similar to data classes in Kotlin.
Similar to case classes in Scala.
Similar to records in C#.
Similar to structs in Go.
Similar to tuples in Python.
gptkbp:is_compatible_with gptkb:Java_SE_14
microservices architecture
Java applications
previous JDK versions
existing JFR features
gptkbp:is_considered future enhancements
future Java versions
gptkbp:is_described_as technical articles
Java documentation
Java experts
Java tutorials
Java language experts
JEP 384 document
gptkbp:is_designed_for high-throughput applications
gptkbp:is_designed_to simplify Java development
gptkbp:is_discussed_in gptkb:Java_conferences
gptkb:Java_Community_Process
Online courses
online courses
Java developers
Java meetups
Technical blogs
Developer meetups
Java community forums
Java forums
Java podcasts
technical meetups
gptkbp:is_documented_in gptkb:JEP
Java SE documentation
Java documentation
Oracle documentation
JDK 15 Release Notes
Open JDK documentation
JEP 384 documentation
JEP 384 specification document
gptkbp:is_essential_for gptkb:standard
gptkb:High
production environments
gptkbp:is_evaluated_by scalability
industry analysts
Java developers
academic researchers
Java experts
performance engineers
Security compliance checks
Java security analysts
Java security assessments
Java security teams
gptkbp:is_expected_to improve developer productivity
better integration with build tools
gptkbp:is_explored_in gptkb:academic_research
Java tutorials
Java workshops
developer blogs
Java blogs
gptkbp:is_focused_on event-driven architecture
gptkbp:is_implemented_in gptkb:Java_Runtime_Environment
gptkb:Java_Flight_Recorder
gptkb:Java_programming_language
gptkb:JDK_11
gptkb:JDK_14
gptkb:Java_Development_Kit_(JDK)
Java developers
Implemented in the Java compiler.
JDK Enhancement-Proposal
Phased implementation.
Java.
Under development.
Detailed in the proposal.
Completed.
Implemented in JDK 16.
Implemented in JDK 17.
Implemented in the Hot Spot JVM.
JDK 16 implementation of pattern matching.
JDK 16 implementation.
Fully implemented.
Proposed implementation in the JDK.
Part of the Java SE platform.
Part of the Java SE Platform.
No specific implementation is required.
Java 14 runtime
gptkbp:is_influenced_by functional programming
functional programming concepts
user feedback
Java 8 features
developer feedback
previous JEPs
gptkbp:is_influential_in Software development methodologies
software development practices
Java development practices
gptkbp:is_integrated_with gptkb:Java_ecosystem
gptkb:cloud_services
monitoring tools
monitoring frameworks
Java build tools
third-party analytics tools
gptkbp:is_linked_to gptkb:Java_Flight_Recorder_API
gptkbp:is_mentioned_in Java blogs
gptkbp:is_motivated_by Reduce boilerplate code.
Reduce the size of the JDK
Java EE and CORBA are no longer part of the Java SE platform.
The Security Manager has been a source of complexity and confusion.
Improve security and flexibility in deserialization.
Improve security and performance of deserialization.
To simplify the use of records in pattern matching.
To improve the readability and maintainability of code.
Improve memory management in Java applications.
gptkbp:is_part_of gptkb:Java_SE_11
gptkb:Java_SE_Platform
gptkb:Java_2_Platform
gptkb:Java_programming_language
gptkb:Java_SE_platform
gptkb:Java_SE_16
gptkb:JDK_14
gptkb:Java_ecosystem
gptkb:Java_Development_Kit_(JDK)
Java SE 11 features
Java language evolution
Java performance tuning
Java SE 15 features
Java's evolution
Java SE 17 features
Java security enhancements
Java 14 features
Java observability solutions
Java performance management.
Java performance monitoring tools
Java's modernization strategy
JDK enhancement process
Java's continuous improvement cycle
Java's feature set for 2020
Java's ongoing improvement efforts
gptkbp:is_promoted_by gptkb:Oracle_Corporation
gptkb:Java_community
Java user groups
Java advocates
Java newsletters
gptkbp:is_promoted_through gptkb:Java_conferences
Webinars
webinars
Java user groups
Java training programs
gptkbp:is_recognized_by Industry leaders
Java certification bodies
gptkbp:is_referenced_in Technical documentation
Java textbooks
Java tutorials
Java books
Java security guidelines
subsequent JEPs
gptkbp:is_related_to gptkb:JEP_353
gptkb:JEP_386
gptkb:JEP_394
gptkb:JEP_395
gptkb:JEP_397
gptkb:Java_Flight_Recorder
gptkb:JEP_305
performance monitoring
Java performance optimization
gptkbp:is_reviewed_by gptkb:Java_conferences
gptkb:Java_SE_Platform_Review_Board
gptkb:Java_Community_Process
gptkb:Java_community
JDK Review Board
Java experts
Security experts
technical journals
Java professionals
gptkbp:is_supported_by gptkb:Java_frameworks
gptkb:Java_Virtual_Machine
gptkb:Java_16
gptkb:multiple_platforms
gptkb:Java_Development_Kit_(JDK)
gptkb:Java_community
Java developers
Java IDEs
Java user groups
Java training programs
Java runtime environments
JDK 11 and later versions
JDK 14 and later versions
JDK 15 and later
gptkbp:is_targeted_at Java developers
JDK 14 release
gptkbp:is_tested_for real-world scenarios
Java applications
performance testing tools
Java developers
various environments
Extensively tested.
Java testing frameworks
Extensive testing was conducted.
Java security tests
Java testing tools
Open JDK testing framework
Java test suites
Extensive testing planned.
JDK 14 builds
gptkbp:is_used_for event-driven architectures
gptkbp:is_used_in enterprise applications
performance tuning
production environments
gptkbp:is_utilized_by enterprise applications
monitoring tools
system administrators
Java applications
Software engineers
Enterprise software solutions
data science applications
developers for debugging
gptkbp:is_utilized_for data analysis
real-time monitoring
system performance evaluation
application diagnostics
gptkbp:is_utilized_in gptkb:Java_frameworks
enterprise applications
real-time analytics
gptkbp:is_visible_from High visibility in the Java community.
gptkbp:issue_link https://bugs.openjdk.java.net/browse/ JDK-8234567
gptkbp:issues JDK-8212020
JDK-8241234
JDK-8251234
gptkbp:jdkrelease gptkb:16
gptkbp:key performance analysis
Context-specific deserialization is essential.
gptkbp:key_deliverables Working prototype, documentation.
gptkbp:key_feature Context-specific filters
Compact syntax for declaring data classes.
Context-specific deserialization.
Context-sensitive string literals.
gptkbp:key_parties Oracle, Open JDK community.
gptkbp:language Type checking and casting.
gptkbp:latest_version gptkb:JDK_16
1.0.
Java version history
JDK 14 and later.
gptkbp:nested_records Supports nested records.
gptkbp:notable_contributor open-source community
Java community members
JDK Community
Brian Goetz, Mark Reinhold.
gptkbp:notable_production Minimal impact on existing code.
No negative impact.
gptkbp:notable_release 2020-09-01
gptkbp:originated_in better Java tooling
gptkbp:outcome More secure and efficient deserialization.
gptkbp:pattern_matching Enhances pattern matching capabilities.
gptkbp:performance Optimized for performance.
Minimal performance impact.
Reduces overhead in deserialization.
gptkbp:plot_summary Enhances instanceof with pattern matching.
Removal of outdated modules.
This JEP proposes to deprecate the Security Manager for removal in a future release.
Provides a mechanism for context-specific deserialization.
Introduce structured concurrency to Java.
This JEP proposes a mechanism for context-sensitive names in the Java programming language.
gptkbp:production_status Active.
gptkbp:project On track for completion.
2020-2021.
Mark Reinhold.
Open JDK.
Adequate resources allocated.
Achieve high security and performance.
Enhance Java serialization.
Frequent updates to stakeholders.
https://openjdk.java.net/jeps/384.
gptkbp:promotes Clearer API design.
Clearer data contracts.
Code reusability.
Data-oriented programming.
gptkbp:proposed_by gptkb:Open_JDK_community
gptkb:Pattern_Matching_for_instanceof
gptkb:Brian_Goetz
gptkb:Oracle
gptkb:Doug_Lea
gptkb:JDK_14
gptkb:Markus_Karg
Java developers
Record Types
JDK Enhancement Proposals
Java language enhancements
Records as a standard feature
streaming of Java Flight Recorder events
Remove the Java Management Extensions (JMX) Modules
aims to streamline Java development processes
tooling improvements for JDK 14
gptkbp:proposed_removal gptkb:JDK_18
gptkbp:provides real-time monitoring
API for context-specific filters
better support for Unicode
a compact syntax for declaring classes
a mechanism for event consumers
Built-in validation.
Type-safe data structures.
compact syntax for data classes
better diagnostics for developers
gptkbp:provides_access_to recorded events
event data streams
gptkbp:published_by gptkb:Java_Enhancement_Proposals_repository
JDK community
gptkbp:purpose Enhance security of deserialization process
gptkbp:record_components Can be accessed via accessor methods.
Can be destructured.
gptkbp:reduces boilerplate code
Error-prone boilerplate.
Code duplication.
Complexity in data handling.
Runtime errors.
gptkbp:related_concept None.
Java SE standards.
Immutable objects.
gptkbp:related_jeps gptkb:JEP_411
gptkb:JEP_346
gptkb:JEP_385
gptkb:JEP_390
gptkb:JEP_391
gptkb:JEP_394
gptkb:JEP_395
gptkb:JEP_396
gptkb:JEP_397
gptkb:JEP_398
gptkb:JEP_399
gptkb:JEP_12
gptkb:JEP_290
gptkb:JEP_400
gptkb:JEP_401
gptkb:JEP_402
gptkb:JEP_403
gptkb:JEP_404
gptkb:JEP_405
gptkb:JEP_406
gptkb:JEP_407
gptkb:JEP_408
gptkb:JEP_409
gptkb:JEP_410
gptkb:JEP_412
gptkb:JEP_413
gptkb:JEP_414
gptkb:JEP_415
gptkb:JEP_416
gptkb:JEP_417
gptkb:JEP_418
gptkb:JEP_419
gptkb:JEP_420
gptkb:JEP_421
gptkb:JEP_422
gptkb:JEP_423
gptkb:JEP_424
gptkb:JEP_425
gptkb:JEP_426
gptkb:JEP_427
gptkb:JEP_428
gptkb:JEP_429
gptkb:JEP_430
gptkb:JEP_431
gptkb:JEP_432
gptkb:JEP_433
gptkb:JEP_434
gptkb:JEP_435
gptkb:JEP_436
gptkb:JEP_437
gptkb:JEP_438
gptkb:JEP_439
gptkb:JEP_440
gptkb:JEP_441
gptkb:JEP_442
gptkb:JEP_443
gptkb:JEP_444
gptkb:JEP_445
gptkb:JEP_446
gptkb:JEP_447
gptkb:JEP_448
gptkb:JEP_449
gptkb:JEP_450
gptkb:JEP_451
gptkb:JEP_452
gptkb:JEP_453
gptkb:JEP_454
gptkb:JEP_455
gptkb:JEP_456
gptkb:JEP_457
gptkb:JEP_458
gptkb:JEP_459
gptkb:JEP_460
gptkb:JEP_461
gptkb:JEP_462
gptkb:JEP_463
gptkb:JEP_464
gptkb:JEP_465
gptkb:JEP_466
gptkb:JEP_467
gptkb:JEP_468
gptkb:JEP_469
gptkb:JEP_470
gptkb:JEP_471
gptkb:JEP_472
gptkb:JEP_473
gptkb:JEP_474
gptkb:JEP_475
gptkb:JEP_476
gptkb:JEP_477
gptkb:JEP_478
gptkb:JEP_479
gptkb:JEP_480
gptkb:JEP_481
gptkb:JEP_482
gptkb:JEP_483
gptkb:JEP_484
gptkb:JEP_485
gptkb:JEP_486
gptkb:JEP_487
gptkb:JEP_488
gptkb:JEP_489
gptkb:JEP_490
gptkb:JEP_491
gptkb:JEP_492
gptkb:JEP_493
gptkb:JEP_494
gptkb:JEP_495
gptkb:JEP_496
gptkb:JEP_497
gptkb:JEP_498
gptkb:JEP_499
gptkb:JEP_500
JEP 394, JEP 305
JEP 290, JEP 367.
gptkbp:related_to gptkb:Fork/_Join_Framework
gptkb:JEP_386
gptkb:JEP_394
gptkb:JEP_395
gptkb:JEP_305
gptkb:Future
instanceof operator
Concurrency API
Deserialization vulnerabilities
gptkbp:release_date March 2020
September 2018
March 2020.
gptkbp:release_notes To be published.
Included in JDK 14 release notes.
https://www.oracle.com/java/technologies/javase/17-relnote-issues.html
gptkbp:released gptkb:JDK_17
gptkb:Java_SE_11
gptkb:Java_16
gptkb:Java_SE_14
gptkb:JDK_11
gptkb:JDK_15
gptkb:Java_17
Aligned with JDK release cycle.
JDK 17 or later.
gptkbp:replaced_by Java EE Modules
CORBA Modules
gptkbp:replaces Java EE modules
CORBA modules
Explicit casting after instanceof
gptkbp:requires gptkb:Java_Virtual_Machine_Specification
gptkb:Java_SE_Platform
gptkb:Java_Language_Specification
gptkb:JEP_290
Java Virtual Machine (JVM) support
JDK 14 or later
gptkbp:requires_review Security implications
gptkbp:reviews gptkb:Alan_Bateman
gptkb:Brian_Goetz
gptkb:David_Holmes
gptkb:Venkat_Subramaniam
gptkb:Dan_Smith
gptkb:Alex_Buckley
gptkb:Johan_Vos
gptkb:Josh_Bloch
gptkb:Kirk_Pepperdine
gptkb:Mark_Reinhold
gptkb:Maurizio_Cimadamore
gptkb:Richard_Warburton
gptkb:Jesse_Glick
gptkb:Sander_Hoogendoorn
2019-12-10
2020-12-01
2021-05-10
JDK Review Team
JDK Community
JDK Enhancement-Proposal Review Process
Various members of the Open JDK community
Various members of the Open JDK community.
Various Java community members.
Jim Laskey
JEP 384 Reviewers
https://openjdk.java.net/jeps/384#review
Sharon Zardetto
Lars Vogel
gptkbp:risk_management Low to moderate risks identified.
gptkbp:scope Focus on deserialization.
Java Virtual Machine (JVM) memory management.
gptkbp:security No security impact.
Mitigates risks associated with deserialization.
Addresses deserialization vulnerabilities.
Enhances security through immutability.
gptkbp:specification gptkb:Java_Language_Specification
https://openjdk.java.net/jeps/384# Specification
gptkbp:specifies Deserialization filters based on context
gptkbp:sponsor gptkb:Mark_Reinhold
gptkbp:stakeholders Java developers.
Java developers, security experts.
gptkbp:status gptkb:Flamethrower
gptkb:Final
gptkb:Preview
2020-01-14
2021-01-12
Standard Feature
gptkbp:success Community engagement.
Community support, clear objectives.
Early adopters reporting positive results.
gptkbp:success_rate Measured by adoption and usage.
Adoption rate, performance benchmarks.
gptkbp:support Supported by Oracle.
gptkbp:supports event filtering
immutability
Custom deserialization logic
Record types.
multiple event formats
Data-centric programming.
Functional programming paradigms.
Immutable collections.
Pattern matching enhancements.
Serialization.
Type inference.
new language features in JDK 14
gptkbp:sustainability_efforts Long-term support planned.
gptkbp:target_audience Java developers
Java developers.
gptkbp:target_jdk gptkb:JDK_17
gptkb:17
gptkb:JDK_11
gptkb:JDK_14
gptkb:JDK_15
gptkb:JDK_16
JDK 16 and later.
Serialization improvements.
gptkbp:title gptkb:Pattern_Matching_for_instanceof
gptkb:Record_Patterns
gptkb:JFR_Event_Streaming
Context-Specific Deserialization Filters
Deprecate the Security Manager for Removal
Context-Sensitive Names
Records (Standard Feature)
Remove the Java EE and CORBA Modules
Promptly Return Unused Memory to the OS
Context-Specific Deserialization
Context-Specific Deserialization (incubator)
Structured Concurrency for Java
Context-Sensitive String Conversion
Records (standard feature preview)
Context-Sensitive String Literal
Deprecate the Java EE and CORBA Modules for Removal
Records (Standard Feature Preview)
gptkbp:to_string_method Automatically generated.
gptkbp:trends Expected to influence future Java features.
gptkbp:tutorials Online tutorials available.
Numerous tutorials available.
gptkbp:type gptkb:JEP
Language Feature
gptkbp:updates 2020-01-14
2021-03-16
2020-03-17
gptkbp:usage Used for creating data transfer objects.
Used for data transfer objects.
Used in collections.
Used in functional programming.
Used in serialization.
Used in Java source code.
Used in secure applications.
Used for creating data classes.
Used in APIs.
gptkbp:use_case Data transfer objects.
Type checking in collections.
Web applications, microservices.
Configuration settings.
Immutable data structures.
gptkbp:user_base Wide user base.
Large user base.
Java developers.
gptkbp:user_manual Available in Java SE user guides.
gptkbp:vision Enhance Java security.
Continued improvement of Java serialization.
gptkbp:was_a_response_to developer needs
gptkbp:was_a_result_of community-driven initiatives
gptkbp:bfsParent gptkb:JDK_17
gptkb:JEP_389
gptkb:JEP_390
gptkb:Java_Compiler_(javac)
gptkb:JEP_23
gptkb:JEP_33
gptkb:JEP_49
gptkb:JDK_10
gptkb:JDK_14
gptkb:JDK_15
gptkb:JEP_488
gptkb:Java_17
gptkb:Java_SE_15
gptkb:Java_10
gptkb:Open_JDK
gptkbp:bfsLayer 5