Skip to content
Permalink
Browse files
8224541: Better mapping of serial ENUMs
Reviewed-by: mschoene, rhalade, robm, rriggs, smarks
  • Loading branch information
Brent Christian committed Jan 21, 2020
1 parent e4f4e8e commit d7136cd430f17d5a89abf8230961e319d066ef93
Showing 2 changed files with 14 additions and 1 deletion.
@@ -1858,6 +1858,8 @@ private ObjectStreamClass readClassDesc(boolean unshared)
break;
case TC_REFERENCE:
descriptor = (ObjectStreamClass) readHandle(unshared);
// Should only reference initialized class descriptors
descriptor.checkInitialized();
break;
case TC_PROXYCLASSDESC:
descriptor = readProxyDesc(unshared);
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -885,6 +885,17 @@ private final void requireInitialized() {
throw new InternalError("Unexpected call when not initialized");
}

/**
* Throws InvalidClassException if not initialized.
* To be called in cases where an uninitialized class descriptor indicates
* a problem in the serialization stream.
*/
final void checkInitialized() throws InvalidClassException {
if (!initialized) {
throw new InvalidClassException("Class descriptor should be initialized");
}
}

/**
* Throws an InvalidClassException if object instances referencing this
* class descriptor should not be allowed to deserialize. This method does

0 comments on commit d7136cd

Please sign in to comment.