diff --git a/java/java.go b/java/java.go
index 3567dbe..48e13fe 100644
--- a/java/java.go
+++ b/java/java.go
@@ -2886,9 +2886,8 @@
 // depending on the module type.
 type bp2BuildJavaInfo struct {
 	// separates dependencies into dynamic dependencies and static dependencies.
-	DepLabels       *javaDependencyLabels
-	hasKotlin       bool
-	onlyProtoInSrcs bool
+	DepLabels *javaDependencyLabels
+	hasKotlin bool
 }
 
 func javaXsdTargetName(xsd android.XsdConfigBp2buildTargets) string {
@@ -2951,9 +2950,6 @@
 
 	staticDeps.Append(srcPartitions[xsdSrcPartition])
 
-	_, protoInSrcs := srcPartitions[protoSrcPartition]
-	onlyProtoInSrcs := protoInSrcs && len(srcPartitions) == 1
-
 	if !srcPartitions[logtagSrcPartition].IsEmpty() {
 		logtagsLibName := m.Name() + "_logtags"
 		ctx.CreateBazelTargetModule(
@@ -3091,9 +3087,8 @@
 	}
 
 	bp2BuildInfo := &bp2BuildJavaInfo{
-		DepLabels:       depLabels,
-		hasKotlin:       hasKotlin,
-		onlyProtoInSrcs: onlyProtoInSrcs,
+		DepLabels: depLabels,
+		hasKotlin: hasKotlin,
 	}
 
 	return commonAttrs, bp2BuildInfo, true
@@ -3137,17 +3132,12 @@
 	if !commonAttrs.Srcs.IsEmpty() {
 		deps.Append(exports) // we should only append these if there are sources to use them
 	} else if !deps.IsEmpty() {
-		if bp2BuildInfo.onlyProtoInSrcs {
-			// java_library does not accept deps when there are no srcs because
-			// there is no compilation happening, but it accepts exports.
-			// bp2build converts this module to 2 java_libraries + java_xx_proto_library + proto_library
-			// the non-empty deps here are not necessary for compiling the protos, in which case
-			// they're unnecessary as deps on the java_library as well since they aren't
-			// being propagated to any dependencies. So we can drop deps here.
-			deps = bazel.LabelListAttribute{}
-		} else {
-			ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.")
-		}
+		// java_library does not accept deps when there are no srcs because
+		// there is no compilation happening, but it accepts exports.
+		// The non-empty deps here are unnecessary as deps on the java_library
+		// since they aren't being propagated to any dependencies.
+		// So we can drop deps here.
+		deps = bazel.LabelListAttribute{}
 	}
 	var props bazel.BazelTargetModuleProperties
 	attrs := &javaLibraryAttributes{
